原文链接:http://www.juzicode.com/archives/3079
错误提示:
程序中定义了a、b 2个数组,修改数组b的内容影响到了数组a,这个例子中本意要将b的内容都修改为55,结果将a的内容也修改成了55:
//juzicode.com;vx:桔子code
#include <stdio.h>
int main(void)
{
int a[10] = {11,2,55,6,36,30,100,5,7,10};
int b[10] = {11,2,55,6,36,30,100,5,7,10};
int i;
for(i=0;i<100;i++){
b[i]=55;
}
for(i=0;i<10;i++){
printf("a[%d] = %d\n",i,a[i]);
}
return 0;
}
可能原因:
1、修改数组b的内容时,循环边界超过了数组b的范围,导致误改了数组a。
解决方法:
1、循环时数组b的边界要符合数组b的定义:i=0;i<10;
//juzicode.com;vx:桔子code
#include <stdio.h>
int main(void)
{
int a[10] = {11,2,55,6,36,30,100,5,7,10};
int b[10] = {11,2,55,6,36,30,100,5,7,10};
int i;
for(i=0;i<10;i++){ //for(i=0;i<100;i++){
b[i]=55;
}
for(i=0;i<10;i++){
printf("a[%d] = %d\n",i,a[i]);
}
return 0;
}
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。