请教一个关于数组的问题
【问题描述】如果连续声明两个数组a[n]和b[n],a[n]的地址和b[0]的地址一样了。
这样如果做一些输出,比如puts(a),就会把a和b都输出了。
【请问】
这是怎么回事?如何避免这样的问题?
【代码】
gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
程序代码:
#include<stdio.h> main() { char a[5],b[5]; int i; for (i = 0;i < 5;i++){ a[i]='a'; b[i]='b'; } puts(a); }
>输出:aaaaabbbbb
【By the way】
我是在我手机上用tcc编写c时发现这个问题的,tcc要颠倒声明顺序
char b[5],a[5];这样才能让b紧跟在a后,形成&a[5]与&b[0]相同。
望各位前辈指教,多谢了^_^