首页 > 代码库 > 瘋子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语言笔记(指针篇)