多语言展示
当前在线:716今日阅读:60今日分享:41

C语言二维数组有关指针用法

指针是C语言中的一个重要概念,也是C语言的一个重要特色,可以使C程序简介、紧凑、高效。每一个学习和使用C语言的人,都应当深入地学习和掌握指针。可以说,不掌握指针就是没有掌握C语言的精华,今天小编就给大家讲讲C语言指针中,最难搞清的“指针引用二维数组”。下面以二维数组a[3][3]为例:
方法/步骤
1

0行首地址:a,&a[0]。    首先大家都知道,数组名就代表数组的首地址,所以a就是二维数组的首地址,也就是二维数组的0行首地址;    同时二维数组也可以看做一个一维数组a[0]、a[1]、a[2];每个一维数组中有嵌套一个一维数组a[0]、a[1]、a[2],所以&a[0]就是0行首地址。

2

1行首地址:a+1,&a[1];同上,理解0行首地址的应该一目了然。

3

0行0列元素地址:&a[0][0],a[0],*(a+0),*a;    第一个&a[0][0]是最容易理解的,学数组的时候就是用这种方法表示的;    0行元素是a[0][0]、a[0][1]、a[0][2],a[0]相当于行数组的数组名,表示行数组的首地址,即0行0列地址;    *(a+0)和*a是完全一样的,只不过为了指针的移动性质表现地更清楚;a是0行首地址,*a访问到的是0行0列地址;

4

1行0列元素地址:&a[1][0],a[1],*(a+1);    只需要把上述的0行,换成一行,就可以得到;

5

2行2列元素地址:&a[2][2],a[2]+2,*(a+2)+2;    a[2]+3,a[2]是2行0列地址,之前忘了说一个重要概念,指针就是地址,地址就是指针;关于指针的移动,可以直接使用加减让指针移动。a[2]+2就是2行2列地址,这是下标法,如果用指针法表示就是*(a+2)+2;

6

2行2列元素值:a[2][2],*(a[2]+2),*(*(a+2)+2);    对2行2列元素地址间接访问就是*(a[2]+2),*(*(a+2)+2),直接访问就是a[2][2];

注意事项
1

初学者学指针是很容易被绕晕的,其实就是一种东西取了不同名字,只要大家经常练习,熟练使用后就会发现指针原来那么容易。

2

原创,希望大家支持。

推荐信息