黑马程序员技术交流社区

标题: 用数组名访问二维数组 [打印本页]

作者: yuan121    时间: 2015-9-6 13:19
标题: 用数组名访问二维数组
int arr[3][4]={
    {1,3,5,7},   --->   arr[0]   第0个一维数组
    {9,11,13,15},--->   arr[1]
    {17,19,21,23}--->   arr[2]
};

arr代表指向第0个元素的地址 &arr[0]   第一行元素的地址   行指针
arr+1代表指向第一个元素的地址 &arr[1]
arr+2代表指向第二个元素的地址 &arr[2]
arr+i代表指向第i个元素的地址 &arr

arr[0]代表arr[0][0]的地址
arr[0]+1代表arr[0][1]的地址
arr[0]+2代表arr[0][2]的地址
arr[0]+3代表arr[0][3]的地址

        
&arr == arr == &arr[0] == arr[0] == &arr[0][0]  --->  数组的首地址

        &arr -->  整个数组的地址  +1(越界)
        arr -->  指向数组第0行的地址   &arr[0]
        &arr[0]  -->  指向数组第0行的地址
        arr[0]  -->  第0行的内容/二维数组的第一个一维数组  指向这个一维数组第一个元素的地址   ==  &arr[0][0]
        &arr[0][0]   整个二维数组第1个一维数组里面第一个元素的地址

        
        
int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
访问 第一行的第0个元素地址表示:
a + 1 =  &a[1]  =  a[1]  =  &a[1][0]  =  *(a + 1)

获取第一行的第0个元素值的方式:
*a[1] =  a[1][0] = **(a + 1)

作者: 同舟ing    时间: 2015-9-6 13:24
看着很6的样子,马克一下。
作者: a631082744    时间: 2015-9-6 18:31
写的很详细,赞!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2