指针与数组互换,为什么定义一个指针赋值为0后无法运行,赋值str后部分结果有问题

匿名网友 |浏览1086次
收藏|2019/03/20 19:37

满意回答

2019/03/20 20:03

你的问题是出在 t=str;上面,t=str相当于t=str[0]也就是你将第1个字串作为交换数据的缓冲它会覆盖原str[0]的值的你要得到正确的结果改 char str[5][20],*t;为 char str[5][20],t[20];并删除 t=str;修改好的程序及结果

whoami1978

其他回答(1)
  • 1、首先确定是字符指针数组还是字符数组指针,前者是一个数组,数组每个元素都是一个字符指针,后者是一个指向字符数组的指针。2、若是指向字符数组的指针,则很简单,使用scanf("%s", str);函数获取输入的字符串,然后使用字符串拷贝函数strcpy(stc, dest);将获取的字符串拷贝到指定地址的字符指针数组中,拷贝过程中注意检查访问数组是否越界,若越界,则需要在字符数组的最后一个元素赋值为结束符'\0'。3、若是赋值 字符指针数组,那么就是对数组中的某一个元素指向的字符数组进行拷贝赋值,其过程与前者相同。
    回答于 2019/03/20 20:15
0人关注该问题
+1

 加载中...