二维数组中的列指针和行指针
时间: 2023-11-02 15:07:09 浏览: 101
二维数组和指针
在C语言中,二维数组可以被视为一个由多个一维数组构成的数组。为了方便访问这些一维数组中的元素,C语言提供了两种方式来表示二维数组:行指针和列指针。
行指针是指向二维数组某一行的指针,它可以通过以下方式定义:
```
int arr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int *p = arr[1]; // 定义一个行指针,指向 arr 数组的第二行
```
在上面的代码中,`arr[1]` 表示二维数组 arr 的第二行,它是一个一维数组。`p` 是一个指向 `arr[1]` 的指针,也就是一个行指针。
列指针是指向二维数组某一列的指针,它可以通过以下方式定义:
```
int arr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*p)[4] = arr; // 定义一个列指针,指向 arr 数组的第一列
```
在上面的代码中,`p` 是一个指向 `arr` 数组的第一列的指针,也就是一个列指针。需要注意的是,列指针的定义中要加上括号,否则会被解释为一个指向整型数组的指针。
通过行指针和列指针,可以方便地遍历二维数组中的元素。例如,使用行指针可以像下面这样遍历二维数组 arr:
```
for (int i = 0; i < 4; i++) {
printf("%d ", *(p + i));
}
```
使用列指针可以像下面这样遍历二维数组 arr:
```
for (int i = 0; i < 3; i++) {
printf("%d ", *(*p + i));
p++;
}
```
阅读全文