C++笔记(基础)初始化输入输出 const
初始化及输入输出
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++ 额外用于支持编译期常量场景(如模板参数)。