C++ Primer 笔记一(类型、常量)

来源:互联网 发布:淘宝上日本代购哪家好 编辑:程序博客网 时间:2024/06/06 18:38

1. C++ 十进制,八进制,十六进制表示法

    1) 如果第一位为1-9,则为十进制

    2) 如果第一位为0,第二位为1-7则为八进制

    3) 如果前两位为0x或者0X,则为十六进制

           cout 控制符 dec oct hex 分别表示输出为十进制,八进制和十六进制

     int nTest = 42;
           cout << dec << "nTest(dec)=" << nTest << endl;
           cout << oct << "nTest(oct)=" << nTest << endl;
           cout << hex << "nTest(hex)=" << nTest << endl;


           cout 打印浮点数后面的0

           cout.seft(ios_base::fixed, ios_base::floatfield);

           cout << "9/5" << 9.0/5.0 << endl;


9/5  执行int除法

9L/5L 执行long除法

9.0/5.0 执行double除法

9.0f/5.0f执行float除法

int glass{1999};  //{}初始化,C++11


2. C++常量

   数字存储 

   cout << "year=" << 1942 << endl;      ---->    year=1942

    数字常量后缀(大小写都可以)

    long(l/L)、unsigned long(ul/UL) ...

    数字常量的存储规则是能够存储该数据的最小类型


     字符存储(字母,数字,标点符号)

     通过字母的数值编码来解决存储问题 , 一般的字符集有ASCII、EBCDIC、Unicode


3. 类型转换

  •      将一种算算数类型转换为另一种算数类型的变量时,C++将对值进行转换
  •      表达式中包含不同的类型时,C++将对值进行转换
  •      将参数传递给函数时,C++将对值进行转换


     潜在的数值转换问题
     1) 较大的浮点类型转换为较小的浮点类型,如将double类型转换为float类型
     2)浮点类型转换为整型

     3)较大的整型转换为较小的整型,如long转换为short


  • 表达式中的转换

在计算表达式时,C++将bool、char、unsigned char、signed char和short值转换为int,其中true被转为1,false被转为0,被称为整型提升(integeral promotion)


转换规则(将较小类型的值转换为较大类型的值)

  1. 如果有一个操作数的类型时long double,则将另一个操作数的类型转换为long double
  2. 否则,如果有一个操作数的类型时double,则将另一个操作数的类型转换为double
  3. 否则,如果有一个操作数的类型时float,则将另一个操作数的类型转换为float
  4. 否则,操作数都是整型,执行整型操作,执行整型提升
强制类型转换不会改变变量的值,而是创建一个新的、指定类型的值,可以在表达式中使用这个值




0 0
原创粉丝点击