第二章变量和基本类型

来源:互联网 发布:windows优化 编辑:程序博客网 时间:2024/06/05 08:55

2.1基本内置类型

2.11算数类型

  1. C++规定一个int至少和一个short一样大但是小于等于long,一个long至少和一个int一样大但是小于等于long long,一个long long至少和一个long一样大。其中long long是C++11中新定义的

  2. 与其他整形不同char分为三种:char 、signed char 和 unsigned char。char表现于哪一种具体由编译器决定,这就可以解释当时在写单片机程序时候出现的一些BUG是由于不注意数据类型

  3. 切勿混用带符号类型和无符号类型,如:int a = -1;unsigned int b=1;std::cout<<a*b<<endl; 输出为4294967295即为-1的补码
    两种不同数据类型运算进行的隐式转换规则

2.4.3顶层const

顶层const:修饰的对象是常量,适用于任何数据类型。例:int* const p1 = NULL;const int a = 1;
底层const:表示指向的对象是常量,和指针与引用相关。例:const int& = i; const int* pa = &a;

constexpr 和 常量表达式

常量表达式:在编译阶段就得到计算结果的表达式
一个对象(或表达式)是不是常量表达式由它的数据类型初始值共同决定
例:
const int max_files = 20; //是
const int limit = maxfiles + 1;//是
int staff_size = 27; //不是
const int sz = get_size(); //不是,具体值要到运行时才知道
constexpr变量
C++11标准规定,允许将变量声明为 constexpr 类型,以便由编译器来验证变量的值是否是一个常量表达式。且声明为constexpr的变量一定是一个常量

0 0
原创粉丝点击