A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuan121 中级黑马   /  2015-9-6 13:19  /  734 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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)

评分

参与人数 1黑马币 +10 收起 理由
流转少年 + 10 赞一个!

查看全部评分

2 个回复

倒序浏览
看着很6的样子,马克一下。
回复 使用道具 举报
写的很详细,赞!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马