1、int *a; //a为指向一个int型的指针
int a[3]; //a可以表示数组的指针
2、如何将二维数组用指针表示?
若存在二维数组int a[3][4];想用指针q来表示
原以为int **q = a; 是可以的,其实 这样也是有问题的;会出现不能将int[3][4]转换为int **的
应该是 int (*p)[3] = a; //将二维数组降为一维数组,o(∩_∩)o...感觉
int (*q)[3] = p;
这样就可以用q来表示这个二维数组了,即使输出printf("%d/n",q[1][2]);也是成立的
用指针指向二维数组是比较麻烦的事
若该二维数组的各维数目是固定的话还好办,可以像int (*p)[3] = a;
3、二维数组如何在函数中作为参数传入一个函数?
例子:void tt(char **str)
{ ....
}
void main()
{
char str[20][20];
tt(str);
}
以上程序编译通不过,如何解决?
若函数的参数是二维数组,函数原型应该写成这种形式:
void tt(char a[][20])或者 void tt(char (*a)[20])或者降为一维数组来处理。 这样编译就可以通过了
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。