Bella666 发表于 2018-12-13 16:32:49

c语言二维数组赋值问题

本帖最后由 Bella666 于 2018-12-13 16:38 编辑

先定义一个二维数组,然后给其中一个数赋初值,为什么每次a都会改变。

刘邦 发表于 2018-12-13 18:11:55

首先在c99中是可以a={=2};的
然后不是c99是不可以单独赋值的,不过你可以用指针做,int *p=&a;
*(*(p+1)+2)=2;
好像是这样

wwyy 发表于 2018-12-13 21:54:01

你仅仅在创建变量a的时候初始化了a,而数组的其他元素你并没有对其进行赋值。所以运行时,a将会是内存单元中上次使用的残留值。因此会出现每次都是不同的情况。

通常,编译器也会对于你使用未赋初值的变量给出警告。使用memset(a, sizeof(a), 0)将空间初始化为0,然后再单独为需要的元素赋值。

lemon3 发表于 2018-12-14 00:52:52

声明后没赋值,用的是上一个程序残留的值。
页: [1]
查看完整版本: c语言二维数组赋值问题