为什么我这个很简单程序请写出下面程序的运行结果果计算不正确请问哪个步骤错误了

(str+1什么意思?)要详细分析

你的程序有問题strcat是字符串连接函数,函数返回指针,两个参数都是指针.第一个参数所指向的内存的地址必须能容纳两个字符串连接后的大小. 你的strcat使用错誤。


str可以看成str[50]的指针指向数组的首地址,指向的是str[0].

str+1是把指针往后移动一个单位

str其实就可以看成str[50]的指针,它是指向str[50]这个数组的首地址此时它具体指向的是str[0].

那么str+1它其实就是把指针往后移动一个单位。所以这时它指向的是str[1]

我觉得你的程序是错的我运行时发现它果然是错的,你的程序在运行到strcat(p1,p2)就有问题了拼接字符串时要保证第一个串有足够的空间保存拼接后的串。把 char *p1; p1="abc";改成char

字符串与数组从运用上说是等价的若p=str,则str+1等于*(p+1)等于str[1]

但是你这个程序有问题 至少我在VC上跑的结果是“已停止工作”

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验伱的手机镜头里或许有别人想知道的答案。

}

我要回帖

更多关于 请写出下面程序的运行结果 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信