C++复合类型--引用和指针

来源:互联网 发布:手机淘宝怎么开不了店 编辑:程序博客网 时间:2024/06/05 05:20

1、引用
  初始化值是对象

int val = 12;// 应用必须初始化int &refVal = val;// 错误,没有初始化int &refVal0; // 错误,初始化应为对象,而不是字面值int &refVal00 = 17; // 注意: 引用的类型和对象类型必须一样

2、指针
指针定义

int *ip1, *ip2;double dp, *dp2;int val = 32;int *p = &val;int *q = p;cout << *p << endl << val << endl;// 注意:指针赋值与被赋值时,数据类型必须保持一致

输出值:

32
32

生成空指针的方法:

int *p1 = 0;//nullptr是字面值(C++11)int *p2 = nullptr;//首先要 #include<cstdlib>int *p3 = null; //合法,p1为指向int的指针类型,p2为int类型int* p1, p2; //与语句 int *p1, p2; 等价 

指向指针的指针

int val = 233;int *pi = &val; //指向int类型的指针int **ppi = &pi; //指向一个int类型的指针(pi的值为int型) cout << "direct value: " << val <<endl        << "indirect value: " << *pi <<endl        << "doubly indirect value: " << **ppi << endl;

输出:

233
233
233

指向指针的引用

注意:引用本身不是对象,所以不能定义指向引用的指针。但指针是对象,所以存在对指针的引用。

int i = 42;int *p; // p是一个int型指针int *&r = p; // r是一个对p指针的引用r = &i; // r引用了对象i,因此使p指向i*r = 0; // 解引用r得到i(p指向i),将i的值改为0,p的值也为0
0 0
原创粉丝点击