Meet success like a gentleman and disaster like a man. 接着上篇文章继续介绍 C++ 基础,本文主要介绍 标准数据类型、数据类型转换、数据输入与输出 标准数据类型即
整型数据从字面即可理解,为整数数据。整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号( 短整型 short [int],占2字节(16位),-2^15 ~ 2^15-1 无符号短整型 unsigned short [int],占2字节(16位),0 ~ 2^16-1 整型 [long] int,占4字节(32位),-2^31 ~ 2^31-1 无符号整型 unsigned [int],占2字节(16位),0 ~ 2^16-1 长整型 long [int],占4字节(32位),-2^31 ~ 2^31-1 无符号长整型 unsigned long [int],占4字节(32位),0 ~ 2^32-1 超长整型 long long [int],占8字节(64位),-2^63 ~ 2^63-1 无符号超长整型 unsigned long long,占8字节(64位),0 ~ 2^64-1 注: 通常将8位的块作为一个字节,32位或4个字节作为一个字(word)
实型又称实数或浮点数,可分为 单精度实型 float,占4字节(32位),有效位6~7位,-3.4E-38 ~ 3.4E+38 双精度实型 double,占8字节(64位),有效位15~16位,-1.7E+308 ~ 1.7E+308 长双精度实型 long double,占16字节(128位),有效位18~19位,-3.4E+4932 ~ 1.1E+4932
字符型即单个字符,用单引号括起来表示,如 'a'(数字也可以,如 '1'),字符型使用标识符 注: 字符只能是一个而且区分大小('A' 与 'a' 是不同的),只能用单引号括起来,不能用双引号(用双引号括起来的是字符串,字符串可以单个,也可多个) 字符在运算的时候采用 ASCII 编码(字符其实可以看成是单字节整型,取值范围 0~255) 转义字符 转义字符是一种特殊的字符常量,以反斜线 常用的转义字符 '\n' 换行 '\t' 水平制表 '\b' 退格 '\r' 回车(不换行) '\0' 空字符 '\'' 单引号 '\'' 双引号 '\\' 一个反斜杠字符 '\ddd' 1~3位八进制数所代表的字符 '\xhh' 1~2位十六进制数所代表的字符
布尔型也称为逻辑型,用标识符 注: C++中的布尔变量存储的就是 0 和 非0,0 为 false,非0 为 true,在输出的时候,只会输出 0 和 1,如果要输出 true 或 false 只能自己判断布尔变量的真假,真则输出 true,假则输出 false,需要写判断语句,最简单的方法就是利用自带的 boolalpha 来输出 true 或 false cout < boolalpha="">< 布尔变量=""><>
整型、实型、字符型 数据间可以进行混合运算,这种情况下,需要将 // 以下表示当运算对象为不同类型数据时,需转换为同一数据类型然后进行运算 int -> unsigned int -> long int -> double // 以下两种在运算时,必定会先转换为 int / double 然后与其他数据进行运算 char、short int -> intfloat -> double
当进行赋值运算时,如果两侧的数据类型不同,需进行类型转换,这种转换是系统 float、double 型赋值给 int 型 直接截断小数(不四舍五入,直接舍去) int、char 型赋值给 float、double 型 补足有效位(后面添 0) char 型(单字节)赋值给 int 型(4字节) 数值赋给 int 型的低 8 位(存入的是字符的 ASCII 码),其他位补 0 long int 型赋值给 int 型 long int 型截断低字节给 int 型 int 型赋值给 long int 型 赋给 long int 型的低 16 位,如果 int 型的最高位是 0,则 long int 的高 16 位全为 0;如果 int 型的最高位为 1,则 long int 型的高 16 位全为 1(称为 符号扩展) unsigned int 型赋值给 int 型 直接传送数值 非 unsigned int 型赋值给位数相同的 unsigned int 型 直接传送数值
强制类型转换只是 类型名(表达式) a + int( b/3 ); 注: 不管被转换的是表达式或者单个变量都需要用括号括起来
#include 字符输入 --
char a; a = getchar(); 注:
如果在程序中有连续两个以上的 字符输出 --
putchar(a); 标准输入 --
scanf(格式空字符, 地址列表); // 地址列表中给出个变量的地址,可以为变量的地址,也可以为字符串的首地址 // 格式控制符由 % 和格式符组成,作用是将要输入的字符按指定的格式输入,如 %d, %c 等 // d、i:用于输入十进制整数 // u:用于无符号十进制形式输入十进制整数 如果 // 注意 %d 之间的 逗号(作为了指定的分隔符) scanf('%d, %d', &a, &b); // 输入 5,6,输出 a=5,b=6 注: 上面说过了地址列表中可以是变量的地址,也可以是字符串的首地址, char a[20]; scanf('%s', a); 标准输出 --
print(格式控制符, 输出列表); // 格式控制符由输入格式说明和普通字符组成,必须用双引号包裹起来 // 格式说明由 % 和格式字符组成,比如 %d,%c 等,普通字符即在输出时原样输出的字符,一般在显示时起提示作用 // 输出列表则是需要输出的数据,各参数间用逗号分开,格式说明和输出项需一一对应 // d、i:以带符号的十进制形式输出整数,正数的(+)号省略不输出 // u:以无符号十进制形式输出整数 // x、X:以十六进制无符号形式输出整数(不输出前导符 0x) // o:以八进制无符号形式输出整数(不输出前导符 0) // c:输出一个字符 // s:输出字符串 // f:以小数形式输出单、双精度,隐含输出 6 位小数 // e、E:以指数形式输出单、双精度,隐含输出 6 位小数 // g、G:自动选用 %f、%e、%E 格式中输出宽度最小的一种使用 // %d:输出数字长度为变量数值的实际长度 // %md:输出 m 位(不足补空位,大于 m 位时按实际长度输出) // %-md:输出 m 位,左对齐输出 // %ld:表示输出长整型数据 // %mld:指定长整型输出宽度 m 位,左边补空格,否则按实际位数输出 // %0md,%0mld:数字 0 表示位数不足 m 时补 0 // %f:按实际格式输出,整数部分按实际位数输出,小数部分输出 6 位 // %m.nf:总位数 m(含小数点),其中 n 位小数 // %-m.nf:总位数 m(含小数点),其中 n 位小数,左对齐 // %s:按实际宽度输出一个字符串 // %ms:输出 m 位(不足补空位,大于 m 位时按实际长度输出) // %-ms:左对齐,不足右补空格 // %m.ns:总位数 m,其中字符数最多 n 个,左补空格 // %-m.ns:同上,右补空格 流输入 --
cin >> a >> b; // 键盘输入 2 3 流输出 --
cout < a=""><> 注: 输出字符串常量时,需用双引号将字符串常量包裹起来,以区别变量名 cout < 'aa';="" ="" cout=""><>
cout < 'aa\n';="" ="" cout="">< aa=""><> 数据输入输出方式比较
结合上一篇文章一共学习了 http://noi./ 注: 运算中常用的库函数(习题中可能出现) 绝对值函数 abs(x):求一个数 x 的绝对值 自然数指数函数 exp(x):求实数 x 的自然指数 e^x 向下取整 floor(x):求不大于实数 x 的最大整数 向上取整 ceil(x):求不小于实数 x 的最小整数 自然对数函数 log(x):求实数 x 的自然数对数 指数函数 pow(x, y):计算 x^y,结果为双精度实数 随机函数 rand():产生 0 到 RAND-MAX 之间的随机整数 平方根函数 sqrt(x):求实数 x 的平方根 |
|