今日主要学习指针的有关练习
指针和引用不同,指针赋值就是令它存放一个新的地址
赋值永远改变的是等号左侧的对象
Void *指针 可以用于存放任意对象的地址 一个void*指针中存放着一个地址 可以用来和别的指针比较 作为函数的输入或输出,或者赋值给另外一个void*指针
理解复合类型的声明
一条定义语句可能定义出不同类型的变量: int I = 1024 , *p = &I ,&r = I;//i是一个int型的数,p是一个int型的指针,r是一个int型引用。“*”只修饰变量
Int* p1,p2 p1是指针 p2是int
指向指针的指针
CONST限定符
防止一个值不小心被改变,使用const进行限制,任何试图改变const的赋值行为都降认为是错误。必须进行初始化。
默认状态下,const对象仅在文件内有效,当多个文件中出现了同名的const变量时,其实等于在不同文件中分别定义了独立的变量,如果想只定义一次,则可以使用extern
CONST的引用
引用const则称为常量引用(reference to const) 只有常量之间才可以进行引用,不可以让非常量引用常量。
在初始化的过程中,只要符合数据格式就可以完成不同变量的初始化引用。遇到精度不同会出现临时量 temporary
存放常量对象的地址只能指向常量的指针
看清声明含义需要从右向左看,int *const curErr = &errNumb; curErr最近的是const,说明为常量对象,“*”说明是一个常量指针,int说明指针指向是一个int型
如果是一个指向常量的常量指针 则不能改变地址和对象值,如果指向是一个一般的类型,则可以进行修改。