第3章 处理数据
目录
1、变量名:
- 只能使用字母字符、数字和下划线
- 第一个字符不能是数字
- 区分大小写
- 不能使用关键字
- 以两个下划线、下划线加大写字母开头的名称保留给编译器使用。
- 以一个下划线开头的名称保留作全局标识符。
2、整型:
- 整型就是没有小数的数字,不同整型用不同的内存量来存储整数。
- 符号类型可以表示正值和负值,无符号类型只能表示正值。
- C++基本整型:char、short、int、long、long long。每种类型都有符号版本和无符号版本,共十种。
- int 设置为自然长度,即计算机处理效率最高的长度。
- 头文件climits包含了整型限制信息,定义了符号常量:INT_MAX,UNIT_MSX,LONG_MIN等。
- 变量值不会为负时,采用无符号数unsigned可以表示更大的值。
- 变量值大于16位时,使用long,防止系统移植到16位系统时出现错误。
- 仅当有大型数组时,使用short,可以节省int型的内存。
- char 也是整型。
3、整型类型:
- short至少16位。
- int至少和short一样。
- long至少32位,且至少与int一样长。
- long long至少64位,且至少与long一样长。
4、C++初始化有多种方式:
- int emus{7};
- int rheas = {12};
- int rocs = {};
5、整型进制表示:
- C++提供三种计数方式书写整数:10、8、16,并以前两位标识数字常量的基数。
- 第一位是1~9,十进制(Decimal integer literal)。
- 第一位是0,第二位是1~7,八进制(Octal integer literal)。
- 前两位为0x 或 0X,十六进制(Hexadecimal integer literal)。十六进制字符 a~f 和 A~F 对应10~15。
042 = 4*8+2 = 34
0xA5 = 10*16+5 = 165
- 默认情况下,cout以十进制表示整数。
- 控制符dec、oct、hex 分别用于指示cout以十进制、八进制、十六进制显示整数。
- 使用控制符修改后,后边输出均会变化。
int waist = 42;
cout << hex;
cout << "waist = " << waist << endl;
cout << oct << "waist = " << waist << endl;
6、char:
- char是另一种整型,存储计算机系统中所有节本符号,一般不会超过128个,一个字节就可以表示全部符号。
- 输入'A',cin将其转换为65进行存储;输出时,cout将65转化为'A'输出。由变量类型引导。
- 字符表示为整数不必使用转换函数。
- char在默认情况下,既不是 没有符号,也不是 有符号。可以显式定义为singned char 或 unsigned char。
- unsigned char范围:0~255,signed char范围:-128~127。
char ch = 'A';
int i = ch;
ch = ch + 1;
i = ch;
cout.put(ch);
- cout.put(); 显示一个字符。'.' 为成员运算符。
7、字符集中字符使用数值编码(ASCII码):
- 字符0 编码48
- 字符A 编码65,字符Z 编码90。
- 字符a 编码97
8、bool型:
bool变量值可以是true或false。
true和false可以通过提升转换为int型,true=>1,false=>0。
任何数字值或指针值都可以被隐式转换为bool值,任何非零值都被转变为true,零被转为false。
int ans = ture;
bool start = -100; //true
bool stop = 0; //false
9、const关键字:
- const 是 constant的缩写,称为限定符。限制常量值不可修改。
- 常量必须在声明时初始化。
- const 修饰普通类型变量、指针变量、参数传递和返回值参考:https://www.runoob.com/w3cnote/cpp-const-keyword.html
- const 与 #define 区别,参考:https://blog.youkuaiyun.com/u012050154/article/details/51001267
int a = 8;
int* p = &a;
int* q = (int*) &a;
cout << p << endl;
cout << q << endl;
cout << *p << endl;
cout << *q << endl;
const int *p2 = &a;
int * const p3 = &a;
*p3 = 9;
cout << p3 << endl;
cout << *p3 << endl;
cout << "Hello World" << endl;
cin.get();
system("pause");
return 0;
输出:
10、浮点数:
- 浮点类型可以表示带小数部分的数字,分为两部分存储,一部分表示数值,另一部分用于对数值进行放大或缩小。
- 缩放因子的存在使得浮点数表示范围比整数更大,但其运算速度通常比整数慢。
- 可以采用标准小数点表示法,也可以采用E表示法,确保数字以浮点格式存储,即使没有小数点。
- 8.33E-4,可以用E或e,数字中不能有空格。
- E后的数字表示小数点向左或向右移动的位数,因为小数点可移动,因此称为浮点数。
- 三种浮点类型:float、double、long double。通常,float为32位,double为64位。
- float精度小于double,C++只保证float小数位6位有效位。
- 浮点常量默认情况下为double类型,采用float类型需添加f或F的后缀,long double 采用L的后缀。1.23f。
- cout 输出会删除末尾的0。调用cout.setf()可以修改输出。cout打印6位小数。
- cout.setf( ios_base::fixed, ios_base::floatfield);
11、运算符:
- 转义符:'\n' : 换行符,'\r':回车,'\b':退格。
- % 求模,取余数。两个操作数必须只能是整数,浮点数将编译错误。% 和 * 、/ 运算优先级相同。
- 除法,两个操作数都是整数,运算结果将为整数,小数部分被直接丢弃,没有四舍五入。操作数存在浮点数时,结果才保留。
12、类型转换:
- 将浮点型转换为整型时,C++采用截取,查找最接近的整数,而不是四舍五入。
-
不同类型的数据进行操作时,算术运算中的低类型会转换为高类型,bool级别最低,char、signed char、unsigned char级别相同。
-
两种类型运算,会先转为浮点型且:float --> double --> long double。否则说明操作数都是整型,进行整型提升。
-
整型从低级到高级:char --> short --> int --> long --> long long。有符号、无符号同序。
-
若两整型分别为有符号和无符号,若无符号级别高,则无符号;否则,若有符号表示范围大,则有符号;否则,都转为有符号类型的无符号版本。
-
int 会转为unsigned int。参考: https://blog.youkuaiyun.com/RiceVan/article/details/108336848
-
强制类型转换不会修改变量本身,而是创建一个新的、指定类型的值。通用格式:typeName (value)
-
staitc_cast<> 可以将数值从一种数值类型转换为另一种数值类型。static_cast<long> (x)
-
利用强制类型转换,显示char型ASCII码:
int ch = 'Z';
cout << int(ch) << endl;
cout << static_cast<int>(ch) << endl;
//均输出90
- auto:让编译器根据初始值的类型推断变量的类型。
本文深入探讨C++中的各种数据类型,包括整型、字符型、布尔型、浮点型及其特性,详解变量初始化、类型转换、运算符等核心概念,适合初学者和有经验的开发者巩固基础。
531

被折叠的 条评论
为什么被折叠?



