您的位置:首页 > 编程语言 > C语言/C++

C语言中有关二维数组的指针问题

2017-06-21 23:13 281 查看
本人大一第一次写博客,欢迎指正。

从举例入手会比较直观。

int a[2][3];//此处定义了一个二维数组。

a –>

a[0] –> a[0][0] a[0][1] a[0][2]

a[1] –> a[1][0] a[1][1] a[1][2]

请问 a 代表什么含义?

a代表第一个数组a[0]的地址,即a == &a[0]。此处可能会有些难于理解。此处a如果仅看数值和a[0][0]的地址一样也就是和a[0]一样,但a的意义和两者远远不同。a本质来讲是一个二级指针,a[0]本质来讲是一个一级指针,a[0][0]则代表二维数组的第一个元素。

那么数a,a[0]值为何会一样呢?

因为不论是三个整数组成的数组,如a[0],a[1];还是单个整数都开始于同一个地址。

问题:

1.a+1代表什么?

代表a[1]的地址

2.a[0]+1代表什么?

代表a[0][1]的地址

3.((a+1)+1) 代表什么?

代表元素a[1][1].

2017年6月21日23:48:54
写于南京工程学院
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息