C++八股文基础(一)——指针和引用的区别? 常量指针和指针常量的区别?什么是函数指针,如何定义和使用场景? 函数指针和指针函数的区别?静态局部变量\全局变量\局部变量的区别和使用场景 等

目录

指针和引用的区别

数据类型

整型 short int long 和 long long

无符号类型

常量指针和指针常量的区别

什么是函数指针,如何定义和使用场景?

函数指针和指针函数的区别

struct和Class的区别

静态局部变量\全局变量\局部变量的区别和使用场景

C++强制类型转换

1. static_cast

2. dynamic_cast

3. reinterpret_cast

4. const_cast


指针和引用的区别

指针存放某个对象的地址,其本身就是变量(命了名的对象),本身就有地址,所以可以有指向指针的指针;可变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变

引用就是变量的别名,从⼀⽽终,不可变,必须初始化

不存在指向空值的引⽤,但是存在指向空值的指针

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 的最⼩值。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J^T

谢谢帅哥/美女

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值