C语言_数组_二维数组的定义和二维数组元素的引用

通过赋初值定义二维数组的大小

 

第一种:

例如:int a[][3] = {{1, 2, 3}, {4, 5}, {6}, {8}};

注意:

       对于二维数组,省略只能省略第一个方括号中的常量表达式

如上的初赋值语句等同于:

       int a[4][3] = {{1, 2, 3}, {4, 5}, {6}, {8}};

 

 

第二种:int = c[][3] = {1, 2, 3, 4, 5};

       要计算第一个空的方括号中的值x:

     当花括号对中的个数能整除第二维的常量表达式时,整数的结果就是第一维的大小;否则,第一维的大小等于所得的结果加1。

(即5/3 = 1 ……2, x = 1 +1 =2)

 

 

二维数组和指针

例如:int *p, a[3][4];

       //定义p为指针变量,a是含有12个元素的一维数组

二维数组实际是一个一维数组,而每一个元素又是一个一维数组。

如上述a,有三个元素a[0],a[1],a[2];而每个元素又是由四个整数元素组成的一维数组。

通过a[0][0],a[0][1]引用,可以把a[0]看做一个整体,当做一个数组名。

a[0]就是代表a[0][0]的地址。

p = a[0]是合法的        p = a[0]+1 相当于&a[0][1]

 

从基类型来看,a为具有4个整型元素的数组类型。

       注意:p = a;        //非法    p基类型只有4个字节,a基类型有4*4个字节

 

 

二维数组取地址

       有变量i和j,它们的取值范围为0 <= I < 3 、0 <= j < 4

那么a[i][j]的地址可以用以下五种表达形式:

(1)&a[i][j]

(2)a[i]+j

(3)*(a+i)+j

(4)&a[0][0]+4*i+j

(5)a[0]+4*i+j

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值