c语言|C语言-二维数组补0

c语言|C语言-二维数组补0


①源程序
#include< stdio.h>
main()
{
int aa[3
[3
={{3{2{1i*p=aa[0
[0
;
/*指针p指向第0行第0元素aa[0
[0
=3 ,
原数组看似只有3个元素 , 实际是3行3列9个元素 , 其余元素应该补0 。
即每个花括号代表一行 。
花括号内的列数少于数组的列数时 , 系统将自动补0 。
花括号数少于数组行数时 , 也将自动补0 。 */
for(i=0;i<2;i++)
{
if( i==0)aa[i
[i+1
=*p+1;
/*当i为0时 , 将改变后面的一个元素aa[i
[i+1
*/
else ++p;
/*当i不为0时 , 指针向后移动一位*/
printf(\"%d\"*p);

printf(\"\\");

~
②计算过程
原数组为
300
200
100

当i=0时 ,
aa[i
[i+1
=aa[0
[1
=*p+1
=aa[0
[0
+1=3+1=4
即原数据变成
340
200
100
此时输出的*p为3 。

当i=1时 ,
执行else ++p;
指针后移一位指向300中的0 ,
但是此时0已经被更改为4 ,
即输出的*p为4 。

【c语言|C语言-二维数组补0】最后结果为34 。