使用指针和for
循环获取二维数组中的值。
示例代码
#include <stdio.h>
int main(void)
{
char matrix[3][3] = {
{ '1','2','3' },
{ '4','5','6' },
{ '7','8','9' }
};
// 数组中的元素
for (int i = 0; i < 9; ++i)
printf(" matrix: %c
", *(*matrix + i));
system("pause");
return 0;
}
执行上面代码,得到以下结果:
matrix: 1
matrix: 2
matrix: 3
matrix: 4
matrix: 5
matrix: 6
matrix: 7
matrix: 8
matrix: 9
在循环中取消引用矩阵:
printf(" matrix: %c
", *(*matrix + i));
使用表达式*(* matrix + i)
来获取数组元素的值。* matrix + i
生成矩阵数中偏移量为i
的元素的地址。
使用matrix
(数组名称)与使用char **
类型的地址值相同。取消引用矩阵产生相同的地址值,但类型为char *
。