C++学习笔记#1(2021.5.6)

190 阅读1分钟

C++中的引用类型

int ival = 1.01是合法的,1.01赋给整型会变窄,丢失精度,输出ival值为1
int &rval1 = 1.01是不合法的,引用必须指向一个实际存在的对象;引用必须赋初始对象;引用是对象的别名。
引用可以多次赋值,但是会跟绑定的对象一起被赋予新值。

C++指针

指针和引用可以对比着学,指针也是对对象的间接访问,不同点在于:

  • 指针本身就是一个对象,允许对指针进行赋值和拷贝,可以先后指向不同的对象。
  • 指针无须再定义时赋初值,若未被初始化,将拥有一个不确定的值。 int *ip1, *ip2每个指针变量前都要有 * 号

获取对象的地址

指针存放某个对象的地址,用取地址符&取出地址。
int ival = 42; int *p = &ival; 类型严格匹配。

指针值

1.指向一个对象
2.指向紧邻对象所占空间的下一个位置
3.空指针
4.无效指针

练习

image.png
分别输出:

i的地址 5

j的地址 10

j的地址 20

j的地址 30

自从p = &j 这行代码之后,指针p一直就是指向的&j,*p = 20改变了j的值,j = 30不用多说;始终没有改变p指针本身的值。

总结

p是指针的值,一般为地址;*p是指针指向对象的值,一般为字面值。