C语言:行指针和列指针

您所在的位置:网站首页 c语言定义指针函数是什么 C语言:行指针和列指针

C语言:行指针和列指针

2024-07-16 06:34| 来源: 网络整理| 查看: 265

对于一个二维数组:

int a[3][5];

前面已经知道,a即是它的行指针,a+0表示第1行的地址,a+1表示第2行地址…

或者可以说成&a[0]表示第1行的地址,&a[1]表示第2行的地址…

那么a[0]+0,a[0]+1…就表示第1行第1列的地址,第1行第2列地址…

a[1]+0,a[1]+1就表示第2行第1列地址,第2行第2列地址…

写法解释指针类型a[0]+0或&a[0][0]指向第1行第1列的地址列指针a[0]+1或&a[0][1]指向第1行第2列的地址列指针a[1]+0或&a[1][0]指向第2行第1列的地址列指针a[1]+1或&a[1][1]指向第2行第2列的地址列指针

像上面的a[row]+col即列指针,列指针经过一次解引用就可以转化成二维数组中实际的值,列指针也是指向非常量的常量指针。

所以如果用列指针进行函数传参,可以直接声明如下: void funcByColPtr(int * const colPtr,const int row,const int col);

附上测试代码:

#include int main() { void funcByColPtr(int * const colPtr,const int row,const int col); void printArray(const int * const colPtr,const int row,const int col); int example[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}}; funcByColPtr(*example,3,5); printArray(*example,3,5); return 0; } void funcByColPtr(int * const colPtr,const int row,const int col) { int i=0; for(;i{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}}; wrongFunc(example,3,5); printArray(*example,3,5); return 0; } void wrongFunc(int ** rowPtr,const int row,const int col) { int i=0,j=0; for(;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3