二维数组的赋值及初始化

例1:

int aa[3][2]={
            {1,2},
            {3,4},
            {5,6}
             };
printf("%d\n",aa[0][0]);

例2:

char bb[3][4]={
            "ni",
            "wo",
            "ta"
             };

printf("%s\n",bb[0]);

注意:二维数组名解引用才是一维数组名,才是指向一维数组的指针。 

定义字符类型二维数组时,个数不足列数也没关系,会自动补‘\0’

例3:

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int i,(*b)[4];
for(i=0;i<2;i++)
{
    b=a+i;
    printf("%d\n",*(b[i]+1));
}

答案是:2,10

小结:二维数组名指向的是整个一维数组,二维数组名解引用(取*或者[])得到的是一维数组名,也即为指向一维数组首元素的指针。

取二维数组元素方法如下:
a[2][3]

*(a[2]+3)
(a[2]+3)[0]

b=a+1;
b[1][3]
*(b[1]+3)

(b[1]+3)[0]

*((a+2)[0]+3)
((a+2)[0]+3)[0]
*(*(a+2)+3)
(*(a+2)+3)[0]
 

二维数组的初始化:

char ch[2][3];

memset(ch,0,2*3);

跟一维数组的初始化一样!!!!

总结:

二维数组名指向的是整个一维数组(整个二维数组的第一个一维数组)

二维数组名解引用是一维数组名!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值