首页 > 代码库 > 瘋子C语言笔记(指针篇)
瘋子C语言笔记(指针篇)
指针篇
4.数组a 的性质
int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}}
int 型数据在KEIL编译环境下,占2字节内存
表示形式 | 含义 | 地址 |
a | 二维数组名,指向一位数组a[0],即0行首地址 | 设2000 |
a[0]、*(a+0)、*a | 0行0列元素地址 | 2000 |
a+1,&a[1] | 1行0列元素地址 | 2008 |
a[1]、*(a+1) | 1行0列元素a[1][0]的地址 | 2008 |
a[1]+2、*(a+1)+2、&[1][2] | 1行2列(即a[1][2])元素地址 | 2012 |
*(a[1]+2)、*(*(a+1)+2),a[1][2] | 1行2列(即a[1][2])元素值 | 元素13 |
(1)为什么*(a+1)表示第一行的首地址呢?
答:*(a+x)==a[X]; 两者等价。
(2)那么C语言中是怎么造成*(a+x)与a[X]完全等价呢?
答:在一位数组中,*a就是a[0],a+1指向a[1],a+2指向a[2],a+3指向a[3],也就是说
*(a+1)、*(a+2)、*(a+3)分别是a[1]、a[2]、a[3]。在实际代码生成机械码的关系中,两个效应完全等价。
下次更新时间2014.09.12
新的理解和见解可留言相互交流,共同学习
瘋子C语言笔记(指针篇)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。