C++(指针的类型)

指针数组与数组指针

指针数组:就是创建了一个数组,这个数组是指针类型的,数组元素都是指针
数组指针:指向数组的一个指针。

int *p1 [10]
int (*p2)[10]

这两句代码里面其实第一个是指针数组,第二个是数组指针。

为什么这么说呢

从符号的优先级来说[]低于()所以第一句代码,[]是与p结合的,而p是指针类型的,所以说创建了一个有10个元素的指针数组。

而第二句代码,会先执行(),所以*p代表的是一个指针指向的对象,然后这个[]是跟着 *p的,也就是跟着的是 *p指向的对象的,只有一个指针p,指向了一个int类型的数组。

指针类型

1、指向常量的指针

cont int y=5;      //创建一个int类型的常量
const int *p=&y;	//创建一个int类型的指针p,让p指向常量y;

其中指针p是变量,y是常量,p指向常量y,而*p代表常量y。

所以指针变量p可变,*p不可变。

其实p改变时,也就是说p指向了其他对象了。那么 *p也会随之改变。

2、常量指针

int y=5//定义一个int类型的变量
int * const p=&y;	//创建一个int类型的常量指针,指针指向变量y

其中指针p是常量,y是变量,p指向变量y,而*p代表变量y。

所以常量指针p不可变, *p可变。

也就是代表指针一旦指向了一个对象就不可在变。

3、指向常量的常量指针

const int y=5;				//创建一个int类型的常量
const int * const p=&y;		//创建一个int类型的常量指针,指针指向常量y

其中指针p是常量,y是常量,p指向常量y,而*p代表常量y。

所以常量指针p不可变, *p不可变。

也就是代表指针一旦指向了一个对象就不可在变,而此时指针指向的对象是常量,所以指针指向的对象也不可变。

发布了110 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/make_1998/article/details/101208227
今日推荐