变量和基本类型

一.复合类型

1.引用

引用为对象起另一个名字,引用必须初始化。

int ival = 1024;
int &refval = ival;
int &refval2;                //错误,引用必须初始化

refval = 2//把2赋给refval指向的对象,即赋值给ival

引用的类型都要和与之绑定的对象严格匹配

int &refval = 10;            //错误,引用类型的初始值必须是一个对象

double dval = 3.14;
int &sval = dval                //错误,引用类型的初始值必须是int类型对象    

2.指针

获取对象地址,使用取地址符(&),访问对象使用解引用符(*)

void * 是一种特殊的指针类型,可用于存放任意对象的地址

二.const

1.const的引用

对常量的引用不能被用作修改它所绑定的对象

const int ci = 1024;
const int &r1 = ci;

r1 = 42;            //错误,r1是对常量的引用
int &r2 = ci;    //错误,试图让一个非常量引用指向一个常量对象

2.指针和const

1.要想存放常量对象的地址,只能使用指向常量的指针,指向常量的指针不能用于改变其说指向对象的值。

const double pi = 3.14;

double *ptr = π                //错误,ptr是一个普通指针
const double *cptr = π    
*cptr = 42;                        //错误,不能给*cptr赋值       

double dval = 4.3;
cptr = &dval;                     //正确,但是不能通过cptr改变dval的值

2.指针本身定义为常量为常量指针,常量指针必须初始化,而且一旦初始化完成,它的值(也就是存放在指针中的那个地址)就不能改变了,把*放在const之前说明指针是一个常量

int errNumb = 0;
int *const curErr = &errNumb;        //curErr将一直指向errNumb 

const double pi = 3.14;
const double *const pip = π        //pip是指向常量对象的常量指针

*pip = 2.72;              //错误,pip是指向常量的指针
*curErr = 0//正确,把curErr所指的对象的值重置

三.处理类型

1.类型别名--关键字typedef

2.

 

posted @ 2021-06-23 16:15  张妖刀  阅读(65)  评论(0)    收藏  举报