小结
1.一个函数中,我们通常会把几个变量的定义声明放在一起,那么当程序编译时,这几个变量在入栈时也是相连着依次入栈,这就会导致出现有时侯字符串输出错误的情况。
2.例如下面
那么输出结果将会是
a="abcdefgh";
b="gh";
可见b的值也被更改了。
3.字符串a和b相连,a的长度其实只有5,b的长度是8,而当把b复制到a中时,超出a的存储长度,继续往下覆盖。字符串以'\0'作为字符串结束标志,而a和b的地址指针是不变的,所以仍然从原地址开始,遇到'\0'结束。如下图。