C 通过指针引用二维数组元素
1、通过指针引用二维数组元素——其实,就是通过改变二维数组的内存地址就可以访问到二维数组中的不同的元素,但是,访问时要注意行号与列号的设置。
2、通过指针引用二维数组元素时,行号与列号的设置格式:
*( * ( 指针变量名 + 行号 ) + 列号 );
格式分析:
(1)内层的小括号,(指针变量名 + 行号)就确定要取出二维数组中的第几行,然后,通过“*”把这个相加以后的地址取出来,以便后面的计算。
(2)然后,在确定了行号以后,还要确定要取第几列的元素,所以,就要加上列号,这样,就可以把最终要取出来的那个元素的地址计算出来了,最后,再通过最外层的“*”把对应地址中的元素值取出来。
3、例子:
int a[ 2 ][ 3 ] ={{1,2,3},{4,5,6}};
int (*p)[3] = a;
void main()
{
*(*(p+1)+2);
}
指针 | a[2][3] | 第1列 | 第2列 | 第3列 |
---|---|---|---|---|
p 指向 | 第1行 | 1 | 2 | 3 |
p+1 指向 |
第2行 | 4 | 5 | 6 |
例子分析:
(1)首先,在程序中,我们是定义了一个整形2维数组a并赋值1至6。
(2)在第二行代码中,我们再定义了一个指针变量p,然后,把2维数组a的第一行的地址赋值给p,所以,p就指向数组中的第一行。
(3)在main函数中,我们使用p+1,同时,当前的p是指向数组中第1行,而加1后就指向第2行,接着,通过“*”取出第2行的地址,然后,再加2,指向第2行中的第3列的元素地址。
(4)最后,通过最外层的“*”取出第2行第3列的元素值6。
非常好,现在,我们已经掌握了C中的“通过指针引用二维数组元素”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用“通过指针引用二维数组元素”去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)