如何区分行指针和列指针
时间: 2023-12-14 09:33:20 浏览: 75
行指针和列指针是指向二维数组元素的指针,但它们的指向方式不同。行指针指向二维数组的一行,而列指针指向二维数组的一列。下面是一个例子,演示如何声明和使用行指针和列指针:
```c
#include <stdio.h>
int main()
{
int arr[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int *p, (*q)[4];
int i, j;
p = arr[0]; // 列指针
q = arr; // 行指针
// 列指针的使用
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
printf("%d ", *(p+i*4+j));
}
printf("\n");
}
// 行指针的使用
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
printf("%d ", *(*(q+i)+j));
}
printf("\n");
}
return 0;
}
```
在上面的例子中,`p`是一个指向整型数据的指针,它指向二维数组的第一个元素,即第一行的第一个元素。`q`是一个指向整型数组的指针,它指向二维数组的第一个一维数组,即第一行。在使用列指针时,我们可以通过指针算术运算来访问二维数组的元素;在使用行指针时,我们需要使用二级指针来访问二维数组的元素。
阅读全文