指针数组和数组指针
2013-10-09 14:44
204 查看
指针数组,故名思义,就是指针的数组,数组的元素是指针;
数组指针,同样,就是直想数组的指针。
简单举例说明:
int *p[2]; 首先声明了一个数组,数组的元素是int型的指针。
int (*p)[2]; 声明了一个指针, 指向了一个有两个int元素的数组。
其实这两种写法主要是因为运算符的优先级, 因为[]的优先级比*高。所以第一种写法,p先和[]结合,所以是一个数组,后与*结合,是指针。后一种写法同理。
指针数组如下处理就会很清楚:
typedef int* intPtr;
intPtr p[2];
一目了然,所以为了避免迷惑,做适当的typedef也是很有必要的。
同理,数组指针也可以作类似处理:
typedef int intArray2[2];
intArray2 * p;
和原来的声明都是等价的。
个人建议编程过程中采用typedef来进行类型定义,这样程序看起来会清晰很多。举个例子说明:
数组指针,元素为指向数组的指针:)
首先,指向数组的指针为:
typedef intArray2* intArray2Ptr;
然后是一个数组的元素:
typede intArray2Ptr intArray2PtrArr3[3];
最后数组的指针:
数组指针,同样,就是直想数组的指针。
简单举例说明:
int *p[2]; 首先声明了一个数组,数组的元素是int型的指针。
int (*p)[2]; 声明了一个指针, 指向了一个有两个int元素的数组。
其实这两种写法主要是因为运算符的优先级, 因为[]的优先级比*高。所以第一种写法,p先和[]结合,所以是一个数组,后与*结合,是指针。后一种写法同理。
指针数组如下处理就会很清楚:
typedef int* intPtr;
intPtr p[2];
一目了然,所以为了避免迷惑,做适当的typedef也是很有必要的。
同理,数组指针也可以作类似处理:
typedef int intArray2[2];
intArray2 * p;
和原来的声明都是等价的。
个人建议编程过程中采用typedef来进行类型定义,这样程序看起来会清晰很多。举个例子说明:
数组指针,元素为指向数组的指针:)
首先,指向数组的指针为:
typedef intArray2* intArray2Ptr;
然后是一个数组的元素:
typede intArray2Ptr intArray2PtrArr3[3];
最后数组的指针:
intArray2PtrArr3 *p;
异常同意这个很搞脑子!
参考:http://www.cppblog.com/cooleaf/archive/2006/05/19/7418.html
相关文章推荐
- C语言复习篇之数组与指针
- 三维数组的指针操作
- 指针和数组为形参的理解
- 第五章——指针与数组
- 什么是数组名?----一 指针与数组的区别!(转载)
- 【C++沉思录】数组和指针的寻址
- 定义两个整型指针,分别用malloc、calloc对其分配空间保存3个元素,malloc分配的空间用memset清零,随机对数组进行赋值随机范围1-3,赋值后用memcmp比较两个数组。如果相同打印G
- int main (int argc, const char * argv[0]) 中参数的含义;指针数组和数组指针
- C++中函数指针与数组
- 数组、字符串与指针
- 数组指针和指针数组的区别
- php each 返回数组中当前的键值对并将数组指针向前移动一步实例
- 【C/C++学院】0828-数组与指针/内存分配/数据结构数组接口与封装
- 数组的数组"、"数组的指针"、"指针的数组"和"指针的指针"的关系
- 数组和指针有关sizeof的题目
- 指针和数组——(个人笔记)
- 指针数组与数组指针
- 数组和指针的一个例子
- C/C++ 指针数组与数组指针、函数指针与指针函数、模板函数与函数模板、类模板与模板类区别
- 指针和数组