[C++]理解复合类型的声明——类型修饰符*和&的复合使用-创新互联

参考:《C++ Primer》

目录

为鸠江等地区用户提供了全套网页设计制作服务,及鸠江网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、鸠江网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

定义多个变量

指向指针的指针

指向指针的引用


定义多个变量

一条定义语句可能定义出不同类型的变量,如下:

int i = 10, *p = &i, &r = i;

上面的语句中i是一个int类型的变量,p是一个int类型的指针,r是一个int型的引用。

⭐有一种错误的观点:在定义语句中,类型修饰符(*或&)作用于本次定义的全部变量。比如:

int* p1,p2;

上面的语句*只是修饰了p1而已,对p2并不产生作用。即p1是指向int的指针,而p2是一个int型的数。

指向指针的指针

指针是内存中的对象,像其他对象一样有自己的地址,因此可以将指针地址再存放到另外一个指针当中。

**表示指向指针的指针,***表示指向指针的指针的指针。例如:

int a = 10;
int *pa = &a;//pa指向一个int型的数
int **ppa = &pa;//ppa指向一个int型的指针

解引用int 型的指针会得到一个int型的数(*pa),同样,两次解引用指向指针的指针就可以访问原始的对象(**pa)。

指向指针的引用

因为引用本身不是一个对象,因此不能定义指向引用的指针。但是指针是对象,可以有指向指针的引用。

例子:

int i = 10;
int *p; //p是一个int型指针
int *&r = p;//r是一个对指针p的引用
 
r = &i; //r引用了一个指针,因此给r赋值&i就是令p指向i
*r = 0; //解引用r得到i,也就是p指向的对象,将i的值改为0

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:[C++]理解复合类型的声明——类型修饰符*和&的复合使用-创新互联
网页地址:http://pwwzsj.com/article/pjdpe.html