初始化及输入输出

c++初始化

int num=10;

括号初始化

int num(10);

int num{ 10 };//更严谨,具有检查类型的功能,比如int写成小数会报错

int arr[ ]{ 1,2,3,4,5 };

输入输出

cin(输入的时候遇到空格就停止输入了)

cout

cin.get()

假如前面定义了一个char ch就可以进行读取

这种用法会从输入流中读取一个字符,包括空格、制表符和换行符等。读取的字符可以赋值给一个字符变量。

cin.getline(str, 20, '? ')//可以避免cin遇到空格就打断输入这个问题

给str输入,最多不超过19个,遇到‘ ? ’(可以改成其他字符)就打断(遇到换行符也会打断)

get():每次只能读取一个字符,可用于逐个字符地处理输入。

getline():用于读取一行字符串,会读取到换行符为止,并且会自动丢弃换行符。

const

定义数组时,大小必须是常量否则会报错

const在c++拥有常量属性

常量可以被const调用,非常量不可(常性调用常性)

C:const 是只读变量(有内存地址,可通过指针间接修改,编译期不视为常量)。

C++:const 若用编译期常量初始化(如 const int n=5),则视为编译期常量(可能无内存,被编译器直接替换为值)

能否作为常量表达式

C:不能(如 const int n=5; int arr[n]; 报错,C99 前)。

C++:能(如 const int n=5; int arr[n]; 合法)。

指针修改的可见性

C:通过指针修改 const 变量后,直接访问变量会显示修改后的值(因读取内存)。

C++:通过指针修改后,直接访问变量仍显示初始值(因编译器优化,用的是替换值)。

与指针结合的规则

两者完全一致:

const int *p 指向为常性的指针(内容不可改

int* const p 指针为常性(方向不可改

核心作用

均提供编译期检查,防止无意修改,提升代码可读性。

C++ 额外用于支持编译期常量场景(如模板参数)。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐