C++ 字面值常量

  • 整型字面值规则

20(十进制)  024(八进制)  0x14(十六进制)

字面值默认是 int 或者 long ,Windows中, intlong 均为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;

    这里高亮显示有问题,应该是:

猜你喜欢

转载自www.cnblogs.com/taote/p/12329304.html