数组初始化问题

一维数组



#include<stdio.h>
#define MAX 15
int main()
{
	int a[MAX] = {0,1,2,3,4,5,1,1,1,1,1,1,1,1,1},b[MAX] = {0,1,2},c[MAX];
	int static d[MAX];
	for( int i = 0; i < MAX; i++ )
		printf("%8d %8d %8d %8d\n",a[i],b[i],c[i],d[i]);
	
	return 0;
}


程序运行结果如下:


       0        0  7541584        0
       1        1        0        0
       2        2        1        0
       3        0        0        0
       4        0       -1        0
       5        0       -1        0
       1        0        1        0
       1        0        0        0
       1        0        1        0
       1        0        0        0
       1        0  4203833        0
       1        0        0        0
       1        0        3        0
       1        0        0        0
       1        0       51        0

--------------------------------
Process exited after 0.03954 seconds with return value 0
请按任意键继续. . .

由此可知,数组可以一一赋值,也可以对其中部分元素进行初始化。

静态存储的数组如果没有进行初始化,或部分初始化,则剩余元素自动赋值为0.

而对数组b前3个元素进行赋初值,其余元素的值并不确定,我也不知道为什么程序运行结果竟然后面都是0.

二维数组

#include<stdio.h>
#define TEST 3
int main()
{
	int a[TEST][TEST] = {1,2,3,4,5,6,7,8,9};
	int b[TEST][TEST] = {1,2,3,4};
	int c[][TEST] = { {1,2,3}, {4,5,6}, {7,8,9} };
	
	for( int i = 0; i < TEST; i++ ){
		for(int j = 0; j < TEST; j++ ){
			printf("%8d%8d%8d\n",a[i][j],b[i][j],c[i][j]);
		}
	}
	
	return 0;
}
```运行结果如下:
       1       1       1
       2       2       2
       3       3       3
       4       4       4
       5       0       5
       6       0       6
       7       0       7
       8       0       8
       9       0       9

--------------------------------
Process exited after 0.05171 seconds with return value 0
请按任意键继续. . .

初始化二维数组是建立在一维数组基础之上的,二维数组的初始化也可以针对部分元素,数组内未被初始化的元素将被统一赋值为0.

初始化时也可以省略内部的花括号,只保留最外面的花括号。只要保证初始化的数值个数正确,效果相同。

若对全部元素都赋了初值,或分行赋值时在初值表中列出了全部行,就可以省略行长度。
多维数组
前面讨论的二维数组相关内容都适用于三维或更多维的数组。处理时通常要使用多重嵌套循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值