1.学习内容:第11章指针进阶 11.1节、11.2节
2.手写笔记
3.编辑运行例题的截图
4.遇到的问题
问题:行元素数组的首地址和首行第一个元素的地址分不清
问题:不能在实现函数时返回在函数内部定义的局部数据对象的地址,这是因为所有的局部数据对象在函数返回时就会消亡,其值不再有效。这句话不懂。
问题:指针数组和数组指针不一样
解决:指针数组就是一个数组,里面存放的是一个一个的指针;数组指针就是指向数组的指针
5.PTA作业
解决:p是一个指向含有四个整型元素的一维数组的指针,数组指针是指向数组地址的指针,本质为指针。
解决:strcat(str,ptr)是将字符串ptr内容连接到字符串str后,然后得到一个组合后的字符串str。如果str字符串内容为"123456 ",ptr字符串为"abc ",那么strcat(str,ptr)后str内容为 "123456abc ",输出结果为123456abc,这样看来函数作用是将ptr内容接到了str的终止符 上
补:
1. char *str_cat( char *s, char *t )
{
int i;
for(;*s!=' ';s++); //先找到 ‘ /0 ’
for(i=0;t[i]!=' ';i++){
*(s+i)=*(t+i); //依次将 t 的每个字符连接到 s 的末尾
}
*(s+i)=' '; // 给 s 的末尾加上 /0 作为结束字符
printf("%s
",&s[0]);
return &s[0];
2.
char *str_cat( char *s, char *t )
{
{
int len,lent,i;
len=strlen(s); //给 len 赋值为s 字符串的长度
lent=strlen(t); //给 lent赋值为t 字符串的长度
for(i=0;i<lent;i++){
s[len+i]=t[i]; //把 t 的每个字符复制到s 的末尾
}
s[len+i]=' '; //给 s补上 /0 作为结尾
return s;
len=strlen(s); //给 len 赋值为s 字符串的长度
lent=strlen(t); //给 lent赋值为t 字符串的长度
for(i=0;i<lent;i++){
s[len+i]=t[i]; //把 t 的每个字符复制到s 的末尾
}
s[len+i]=' '; //给 s补上 /0 作为结尾
return s;
3.
char *str_cat( char *s, char *t )
{
while(*s!=' ')
s++; // 先找到 /0
while(*t!=' ')
*s++=*t++; // 把 t中的每个字符分别复制到s
return &s[0];
}
{
while(*s!=' ')
s++; // 先找到 /0
while(*t!=' ')
*s++=*t++; // 把 t中的每个字符分别复制到s
return &s[0];
}