- 整型字面值规则
20(十进制) 024(八进制) 0x14(十六进制)
字面值默认是 int 或者 long ,Windows中, int 和 long 均为4字节(32位),因此默认是 int 或者 long 。如果要使其为长整型,则在后面要加上L或者LL,如:20L、20LL。同样的,默认是signed,要使其为unsigned,则要加U,如:20U。
- 浮点字面值规则
浮点字面值默认类型是 double ,后面加f可指定为 float ,后面加L可指定为 long double 。
科学计数法:写法:3.14159E2(代表314.159),默认是double,后面加F可指定为float,如3.14159E3F(代表3141.59)。
- 布尔字面值规则
只有 true 和 false 。
- 字符字面值规则
宽字符的定义与输出:
#include<iostream> int main() { char x = 'a'; printf("%c\n", 'A'); //宽字符 wchar_t y = L'中'; setlocale(LC_ALL, "chs"); //std::cout << y << std::endl; wprintf(L"%lc\n", y); return 0; }
- 非打印字符转义序列
对于一些特殊字符,需要使用转义序列,例如:
#include<iostream> int main() { std::cout << "我说:\"我正在学习C++!\"" << std::endl; //std::cout << "我的文件夹是:C:\bit\test" << std::endl; std::cout << "我的文件夹是:C:\\bit\\test" << std::endl; return 0; }
- 字符串字面值
尽量使用宽字符串处理中文:
#include<iostream> int main() { std::cout << "hello, world" << std::endl; std::cout << 'A' << std::endl; std::cout << "A" << std::endl; std::cout << L"这是宽字符串" << std::endl;//打印出数字 setlocale(LC_ALL, "chs"); wprintf(L"%ls\n", L"这是宽字符串"); return 0; }
在字符串的后面都有一个看不见的字符:\0 。
- 字符串字面值的连接
std::cout << "a multi-line" "string literal" "using concatenation" << std::endl;
- 多行字面值
std::cout << "a multi-line \ string literal \ using a backslash" << std::endl;
这里高亮显示有问题,应该是: