目录
指针和引用的区别
指针存放某个对象的地址,其本身就是变量(命了名的对象),本身就有地址,所以可以有指向指针的指针;可变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变
引用就是变量的别名,从⼀⽽终,不可变,必须初始化
不存在指向空值的引⽤,但是存在指向空值的指针
1. 定义和声明:
指针是⼀个变量,其值是另⼀个变量的地址。声明指针时,使⽤ * 符号。
int x = 10;
int *ptr = &x;
引用是⼀个别名,它是在已存在的变量上创建的。在声明引⽤时,使⽤ & 符号。
int y = 20;
int &ref = y;
2. 使用和操作:
指针: 可以通过解引⽤操作符 * 来访问指针指向的变量的值,还可以通过地址运算符 & 获取变量的地址。
int value = *ptr; // 获取指针指向的值
int address = &x; // 获取变量 x 的地址
引用: 引⽤在声明时被初始化,并在整个⽣命周期中⼀直引⽤同⼀个变量。不需要使⽤解引⽤操作符,因为引⽤本身就是变量的别名
int newValue = ref; // 获取引⽤的值
3. 空值和空引用:
指针可以为空(nullptr)表示不指向任何有效的地址。
引用必须在声明时初始化,并且不能在后续改变引⽤的绑定对象。因此,没有空引⽤的概念
4. 可变性:
指针: 可以改变指针的指向,使其指向不同的内存地址。
引用: ⼀旦引⽤被初始化,它将⼀直引⽤同⼀个对象,不能改变绑定。
5. 用途:
指针: 通常⽤于动态内存分配、数组操作以及函数参数传递。
引用: 通常⽤于函数参数传递、操作符重载以及创建别名。
数据类型
整型 short int long 和 long long
C++ 整型数据⻓度标准
short ⾄少 16 位
int ⾄少与 short ⼀样⻓
long ⾄少 32 位,且⾄少与 int ⼀样⻓
long long ⾄少 64 位,且⾄少与 long ⼀样⻓
在使⽤8位字节的系统中,1 byte = 8 bit
很多系统都使⽤最⼩⻓度,short 为 16 位即 2 个字节,long 为 32 位即 4 个字节,long long 为 64 位即 8 个字 节,int 的⻓度较为灵活,⼀般认为 int 的⻓度为 4 个字节,与 long 等⻓。 可以通过运算符 sizeof 判断数据类型的⻓度。例如:
cout << "int is " << sizeof (int) << " bytes. \n";
cout << "short is " << sizeof (short) << " bytes. \n";
头⽂件climits定义了符号常量:例如:INT_MAX 表示 int 的最⼤值,INT_MIN 表示 int 的最⼩值。