c语言指针与二维数组
时间: 2023-12-09 17:35:11 浏览: 130
C语言中,指针和二维数组可以很好地配合使用。通过指针,我们可以更加灵活地引用二维数组的元素。下面是一个简单的例子:
假设我们有一个二维数组a,它有3行4列,我们可以定义一个指向二维数组的指针p,然后通过指针p来引用二维数组a的元素。
```c
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int *p = &a[0][0]; // 定义指向二维数组的指针p,指向a的第一个元素
```
现在,我们可以通过指针p来引用二维数组a的元素了。例如,要访问a这个元素,可以使用以下代码:
```c
int x = *(p + 1*4 + 2); // p+1*4+2表示a[1][2]在一维数组中的偏移量
printf("%d", x); // 输出:7
```
上面的代码中,p+1*4+2表示a在一维数组中的偏移量,也就是a在一维数组中的下标。因为a是一个3行4列的二维数组,所以a在内存中的布局是连续的一段内存,可以被看做一个一维数组。因此,我们可以通过指针p来访问a的任意一个元素。
阅读全文