Logo

C++中的限定符

C++中的限定符

const一族🤔

1. const限定符

默认状态下,const对象仅在文件内有效,如果要在多个文件中共享,需要在定义与声明之前都添加extern关键字

const的引用

引用及其对应的对象都应是常量

const int i= 20;
const int &ri=i;

指针和const

对于常量,必须使用常量指针指向它

顶层和底层const

顶层const表示指针本身是个常量,底层const表示指针指向的对象是一个常量 顶层const可以表示任意的对象是常量

2. constexpr变量

将变量声明为constexpr类型以便由编译器确定一个变量的值是否是一个常量表达式 这些常量表达式在编译时就会计算出结果 对于字面值类型(算数类型、引用、指针)可以被定义成constexpr 特别地,constexpr类型的指针必须被初始化成0,或者是在固定地址的变量 例如函数中的变量,由于不存放在固定地址中,所以不能声明成constexpr类型的变量

constexpr函数

参数、返回值都必须是常量类型,且函数体只有一个return语句

constexpr int func(){return 3;}

类型相关的😺

1. 类型别名using

除了typedef外,也可以使用using I = int; 这种语句来给类型起名 using的另一种用法:using namespace::name;

2. auto说明符

auto作为一种类型说明符,可以分析表达式的类型,但是在一条语句中只能声明一种类型的变量

auto会忽略顶层const,保留底层const

3. decltype类型指示符

decltype不计算表达式,而是分析其类型

decltype返回的类型包括const和引用

© 2025 All rights reservedBuilt with Flowershow Cloud

Built with LogoFlowershow Cloud