(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上跑的结果是“已停止工作”