c语言二维数组赋值问题
本帖最后由 Bella666 于 2018-12-13 16:38 编辑先定义一个二维数组,然后给其中一个数赋初值,为什么每次a都会改变。 首先在c99中是可以a={=2};的
然后不是c99是不可以单独赋值的,不过你可以用指针做,int *p=&a;
*(*(p+1)+2)=2;
好像是这样
你仅仅在创建变量a的时候初始化了a,而数组的其他元素你并没有对其进行赋值。所以运行时,a将会是内存单元中上次使用的残留值。因此会出现每次都是不同的情况。
通常,编译器也会对于你使用未赋初值的变量给出警告。使用memset(a, sizeof(a), 0)将空间初始化为0,然后再单独为需要的元素赋值。 声明后没赋值,用的是上一个程序残留的值。
页:
[1]