指向二维数组的指针定义方式
2012-10-12 21:44
435 查看
看了一些资料,指向二维数组的指针定义方式并不是直接定义指针的指针
int a[3][6];
int **p=a; 像这样定义是错误的
因为a代表着除了第一列以外的列数的维数大小,如a+1的地址就是a[1]的地址,也就是a[1][0]的地址,而p仅是整形指针的指针,没跨越一次就是4字节,因此他们的大小是不匹配的,所以这样子直接等于号是不正确的。
要真正的定义方式应概是定义指向n维数组的指针,n就是除第一维的另外维度,
如上面的指针定义应该为
int (*p)[6];
p=a;
这样子就 可以就可以通过p以下标形式来访问数组。
int a[3][6];
int **p=a; 像这样定义是错误的
因为a代表着除了第一列以外的列数的维数大小,如a+1的地址就是a[1]的地址,也就是a[1][0]的地址,而p仅是整形指针的指针,没跨越一次就是4字节,因此他们的大小是不匹配的,所以这样子直接等于号是不正确的。
要真正的定义方式应概是定义指向n维数组的指针,n就是除第一维的另外维度,
如上面的指针定义应该为
int (*p)[6];
p=a;
这样子就 可以就可以通过p以下标形式来访问数组。
相关文章推荐
- 指向二维数组的指针定义方式
- 定义一个一维指针指向二维数组并打印
- 类内定义指向二维数组的指针
- 采用new运算符创建一个指向二维数组的指针的两种方式
- java 定义二维数组的多种方式
- 指向数组的指针和二维数组
- C/C++指向二维数组的指针
- VS调试时把指向数组的指针按照数组方式查看
- 浅谈"指向二维数组的指针"
- 使用指向指针的指针创建任意大小的二维数组
- c# 一维数组和二维数组的定义几种方式
- 一维指针和二维指针指向二维数组的一些问题
- 定义指向模板函数的函数指针类型
- 使用typedef定义指向函数的指针
- 二维数组的定义方式与细节
- 指向二维数组的指针
- 直观理解C语言中指向一位数组与二维数组的指针
- 二维指针,二维数组,以及指向数组的指针的相关问题
- 指向二维数组的指针 学习笔记
- C语言技巧--在结构体中使用函数例子(定义一个指向函数的指针)