您的位置首页生活百科

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

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

的有关信息介绍如下:

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

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

0行首地址:a,&a。

首先大家都知道,数组名就代表数组的首地址,所以a就是二维数组的首地址,也就是二维数组的0行首地址;

同时二维数组也可以看做一个一维数组a、a、a;每个一维数组中有嵌套一个一维数组a、a、a,所以&a就是0行首地址。

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

0行0列元素地址:&a,a,*(a+0),*a;

第一个&a是最容易理解的,学数组的时候就是用这种方法表示的;

0行元素是a、a、a,a相当于行数组的数组名,表示行数组的首地址,即0行0列地址;

*(a+0)和*a是完全一样的,只不过为了指针的移动性质表现地更清楚;a是0行首地址,*a访问到的是0行0列地址;

1行0列元素地址:&a,a,*(a+1);

只需要把上述的0行,换成一行,就可以得到;

2行2列元素地址:&a,a+2,*(a+2)+2;

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

2行2列元素值:a,*(a+2),*(*(a+2)+2);

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