二维数组

二维数组

1 数组的存储方式

  1. 按行存储 先存第0行 再存第1行… C语言中就是按行存储
  2. 按列存储 先存第0列 再存第1列…

2 二维数组的定义

int a[3][3];

这就定义了一个二位数组,此时里面没有数据,或者说时脏数据

3 二维数组初始化

注意 :在定义的时候也可以初始化

int a[3][3]={1,2,3};

分段赋值

int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };

连续赋值

int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};

考点

  1. 二维数组无论时在定义时候还是在初始化的时候都必须写上列下标,告诉程序,这个二维数组有几列。
  2. 连续赋值常常不写行的下标,要通过后面的总个数除以列下标自己算出来

二维数组的0赋值

1)可以只对部分元素赋值,未赋值的元素自动取“零”值。例如:

int a[3][3] = {{1}, {2}, {3}};
1  0  0
2  0  0
3  0  0

2) 分段赋值也一样

int a[3][3] = {0, 1, 0, 0, 2, 3};
0  1  0
0  2  3
0  0  0

二维数组作为参数的传递

	int a[3][3]={0};//全部置0
	//调用函数 fun
	fun(a);

	//fun函数的定义
	void fun(int a[][3]){
	
	}

那是因为数组和指针有许多相似的地方,我在开始是学习的时候就把他们看成一类,在学习的时候发现挺管用。由于数组在传递的时候本质上就时传递一个指针,并不存在传递一个实参int a,在函数中把int a修改了,返回的时候无效,只有通过指针传递才可以达到这样的目的。以上这种情况对于数组都是不存在的,数组一传递就是指针,那么问题就来了,传递一个二维数组函数时不知道这个数据时几行几列,所有在定义函数时候需要写成数据指针

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值