目录
① c与c++中const的不同
1.c中的const
以此代码为例:
c将n依然看作一个变量
2.c++中的const
以此代码为例:
c++将n看作一个常量,编译时遇见n就用5替换掉
结论:c以变量为主,c++以常性为主。
② const与指针
const修饰指针的指向
注意:指针有两个值:(1.自身的值 2.所指之物的值)
const修饰指针的指向,没有修饰指针本身(所指之物的值不能改变)
const修饰指针本身
const修饰指针本身,没有修饰指针的指向(指针本身的值不能改变)
③ const与引用
常引用只可读不可改
注意:常引用可以用字面常量初始化
右值引用
(可以取地址的值为左值,相反为右值)
④ 指针和引用的区别
语法层面
1.指针变量存储某个实例(变量或对象)的地址,引用是某个实例的别名。
2.程序为指针变量分配内存空间,而引用不分配。
3.指针使用时需要解引用(前加*),引用可以直接使用。
4.指针变量自身的值可以改变,引用在定义时就初始化,之后不能再成为另一个变量的别名。
5.指针可以为空,引用没有空引用。
6.sizeof(指针)=4,sizeof(引用)=变量的大小。
7.指针作为形参传递时需要判空,引用不需要。
8.指针的级数没有限制,而引用只有一级。
9.++指针 是指针自身的值改变,指向另一块内存空间。++引用 是变量的值改变。