c语言中行指针与列指针
时间: 2023-12-08 12:37:41 浏览: 94
c语言与指针
C语言中,二维数组名表示的是行指针,一维数组名表示的是列指针。具体解释如下:
1. 行指针
二维数组名表示的是行指针,即指向二维数组的第一行的指针。例如,对于一个二维数组a,a表示的是指向a的指针,a+1表示的是指向a的指针,以此类推。因此,a+1是跳过一行,而不是跳过一个元素。
2. 列指针
一维数组名表示的是列指针,即指向一维数组的第一个元素的指针。例如,对于一个一维数组a[10],a表示的是指向a的指针,a+1表示的是指向a[1]的指针,以此类推。因此,a+1是跳过一个元素,而不是跳过一行。
下面是一个例子,演示了如何使用行指针和列指针:
```c
#include <stdio.h>
int main() {
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int *p = a[0]; // p指向a[0][0]
int (*q)[4] = a; // q指向a[0]
// 使用行指针
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", *(a[i] + j)); // 或者使用*(q[i] + j)
}
printf("\n");
}
// 使用列指针
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", *(p + i + j * 3)); // 或者使用*(p + i * 4 + j)
}
printf("\n");
}
return 0;
}
```
阅读全文