笔记:
问题:
指针数组和数组指针的区别:
指针数组用于存放字符数据单元的地址。是由指针变量构成的数组。是存储指针的数组;
数组指针:是一个指针,指向一个数组,是指向数组的指针;
*p[10]与(*p)[10]的区别:
*p[10]:由于[]的优先级比*高,所以p先与[]结合,构成一个数组的定义,数组名为p,其为指针数组。
(*p)[10]:在这里()的优先级比[]高,*和p构成一个指针的定义,指针变量名为p,这里的数组没有名字,是一个匿名指针。
数组&a和a的区别:
&a是整个数组的首地址,a是数组首元素的首地址;
char *str_cat( char *s, char *t ){
int i=0;
int j=0;
while(s[i]!=' ')//确定字符串s中的字符结束符' '的位置{
i++;
}
while(t[j]!=' ')//遍历字符串t {
s[i+j]=t[j];//将t中的字符逐个放到s中字符后面
j++;
}
s[i+j]=' ';//将' '字符补上
return s;//将 s字符串的首地址返还给主函数
}
char *str_cat( char *s, char *t ){
int i;
int j;
for(i=0;s[i]!=' ';i++);//找到s字符串中' '
for(j=0;t[j]!=' ';j++)//遍历t指针所指的字符串
s[i+j]=t[j];//将t中的字符逐个放到s中字符后面
s[i+j+1]=' ';//将' '补全
return s;//将 s字符串首地址返还给主函数
}
char *str_cat( char *s, char *t ){
int i;
for(i=0;t[i]!=' ';i++){//遍历t字符串
s[strlen(s)]=t[i];//将t中字符逐个放到s中字符后面
}
s[strlen(s)]=' ';//补全' '
return s;//将 s字符串首地址返还给主函数
}