第五次作业

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;
3.
char *str_cat( char *s, char *t )
{
 while(*s!='')
 s++;      // 先找到 /0
 while(*t!='')
 *s++=*t++; // 把 t中的每个字符分别复制到s
 return &s[0];
}
原文地址:https://www.cnblogs.com/g-dragon-c/p/12687793.html