需要区分的几个有关指针的问题
需要区分的几个有关指针的问题:
1.const指针与指向const的指针
1)const 指针:指针是const,
比如:int * const x;
表示指针不能修改,不能指向其他对象,但是指针所指向的地址的值可以修改;
2) 指向const的指针:指针指向const对象
比如:const int *x;
或:int const *x;
表示指针可以指向其他对象,但指针所指的当前对象的值不可以修改。
2.函数指针与函数返回指针
1)函数指针:指向函数的指针
比如:int (*p)(int x, int y);
表示p为一个指针,指向函数的首地址;
2)函数返回指针:函数的返回值为指针类型
比如:int *p(int x, int y);
表示该函数返回值为指针类型。
3.数组指针与指针数组
1)数组指针:指向数组的指针
比如:int (*p)[10];
表示一个指针,指向具有10个整形元素的一维数组;
2)指针数组:数组元素为指针的数组
比如:int *p[10];
表示一个一维数组,元素均为整形指针。