目录
[1.1 基本数据类型](#1.1 基本数据类型)
[1.2 非基本数据类型](#1.2 非基本数据类型)
[2.1 常量](#2.1 常量)
[2.2 变量](#2.2 变量)
[2.2.1 变量定义规则](#2.2.1 变量定义规则)
[2.2.3 变量赋初值](#2.2.3 变量赋初值)
[3.1 整型常量的表示形式](#3.1 整型常量的表示形式)
[3.2 整型变量分类](#3.2 整型变量分类)
[3.2.1 关键特性](#3.2.1 关键特性)
[4.1 浮点型常量表示](#4.1 浮点型常量表示)
[4.2 浮点型变量特性](#4.2 浮点型变量特性)
[5.1 字符常量](#5.1 字符常量)
[5.2 字符变量与字符串常量](#5.2 字符变量与字符串常量)
[6.1 算术运算符](#6.1 算术运算符)
[6.2 强制类型转换](#6.2 强制类型转换)
[6.3 自增自减运算符](#6.3 自增自减运算符)
[6.4 逗号运算符](#6.4 逗号运算符)
[6.5 混合运算类型转换](#6.5 混合运算类型转换)
引言
C++作为一门静态类型语言,数据类型、运算符与表达式是构建程序的基础框架。掌握数据的描述规则(数据类型)和操作规则(运算符与表达式),是写出高效、无错代码的前提。本文基于C++第二章核心知识点,系统梳理数据类型分类、常量与变量定义、各类数据特性及运算符使用技巧,结合实例代码助你快速入门。
一、C++数据类型体系
C++的数据类型分为基本数据类型 和非基本数据类型,构成了程序中数据存储的基础模型:
1.1 基本数据类型
核心用于存储简单数据,包括:
整型:
int(基本整型)、short(短整型)、long(长整型)字符型:
char(普通字符型)、unsigned char(无符号字符型)实型(浮点型):
float(单精度)、double(双精度)、long double(长双精度)布尔型:
bool(取值true/false)无值型:
void(多用于函数返回值)
1.2 非基本数据类型
由基本类型组合或扩展而来,包括:
数组:
type[](如int arr[5])指针:
type*(如char* p)引用:
type&(如int& ref = a)类与结构体:
class、struct联合:
union枚举:
enum
二、常量与变量
2.1 常量
程序运行中值不可改变的量,分为两类:
字面常量 :直接书写的常量值,如整型
100、实型3.14、字符型'a'、字符串"hello"符号常量 :用标识符替代常量,通过
#define定义,格式:#define 标识符 常量示例代码:符号常量的使用
cpp#include <iostream> using namespace std; #define PRICE 30 // 定义符号常量PRICE代表30 int main() { int num = 10, total; total = num * PRICE; // 等价于10*30 cout << "total=" << total << endl; // 运行结果:total=300 // PRICE=40; 错误:符号常量不能赋值修改 return 0; }
2.2 变量
程序运行中值可改变的量,本质是内存中的存储单元,通过标识符(变量名)访问。
2.2.1 变量定义规则
格式:
类型符 标识符(如int a; char c; float x;)命名规范:仅由字母、数字、下划线组成,首字符必须是字母或下划线(如
sum、_total、student_name合法;M.D.John、3D64非法)注意事项:区分大小写(
A和a是不同变量),建议"见名知意",需先定义后使用
2.2.3 变量赋初值
支持定义时直接初始化,示例:
cppint a = 3; // 整型变量a初值3 float f = 3.56; // 浮点型变量f初值3.56 char c = 'a'; // 字符变量c初值'a' int x, y, z = 5; // 仅z初始化,x、y未初始化 int m = 3, n = 3; // m、n初值均为3(不可写int m=n=3;)
三、整型数据
3.1 整型常量的表示形式
十进制:直接书写(如
123、-456)八进制:以
0开头(如0123等价于十进制83)十六进制:以
0x开头(如0x123等价于十进制291)
3.2 整型变量分类
按符号和长度分为6类(Visual C++ 6.0环境):
类型 字节数 数值范围 [signed] int 4 -2147483648~2147483647 unsigned int 4 0~4294967295 [signed] short [int] 2 -32768~32767 unsigned short [int] 2 0~65535 [signed] long [int] 4 -2147483648~2147483647 unsigned long [int] 4 0~4294967295
3.2.1 关键特性
内存中以补码存储,有符号变量最高位为符号位(0正1负)
可能发生溢出 :超出范围时数值循环(如短整型
32767+1=-32768)示例代码:整型溢出
cpp#include <iostream> using namespace std; int main() { short a = 32767; // 短整型最大值 short b = a + 1; // 溢出 cout << a << "," << b << endl; // 运行结果:32767,-32768 return 0; }
四、浮点型数据
用于存储小数或大范围整数,分为单精度(float)、双精度(double)、长双精度(long double)。
4.1 浮点型常量表示
小数形式:如
0.123、3.14指数形式:如
3e-3(等价于0.003),要求e前后必须有数字,指数为整数规范化指数形式:
e前的小数部分需保留1位非零数字(如1.23456e2)
4.2 浮点型变量特性
float:4字节,7位有效数字,范围3.4e-38~3.4e+38
double:8字节,15~16位有效数字,范围1.7e-308~1.7e+308(默认浮点型常量为double)存在舍入误差:超出有效数字的部分会被舍弃
示例代码:浮点型舍入误差
cpp#include <iostream> using namespace std; int main() { float a = 123456.789e5; float b = a + 20; cout << "a=" << a << ", b=" << b << endl; // 运行结果:a=12345678848.000000, b=12345678868.000000 return 0; }
五、字符型数据
5.1 字符常量
普通字符:单引号包裹(如
'a'、'*')转义字符:以
\开头,表示特殊功能(如\n换行、\t制表位、\101八进制ASCII码对应'A')示例代码:转义字符使用
cpp#include <iostream> using namespace std; int main() { cout << " ab c\t de\rf\tg\n"; // \t制表位、\r回车、\n换行 cout << "h\ti\b\bj k"; // \b退格 return 0; } // 运行结果: // f ab c gde // h j k
5.2 字符变量与字符串常量
字符变量:
char类型,占1字节,存储字符的ASCII码,可与整型互通字符串常量:双引号包裹(如
"abc"),末尾隐含\0作为结束标志("a"占2字节,'a'占1字节)示例代码:字符与整型互通
cpp#include <iostream> using namespace std; int main() { int a = 'A'; // 'A'的ASCII码为65 char b = 32; // 32是空格的ASCII码 char c = a + b; // 65+32=97,对应'a' cout << (int)c << endl; // 输出97(整型形式) cout << c << endl; // 输出'a'(字符形式) return 0; }
六、运算符与表达式
6.1 算术运算符
基本运算符:
+(加)、-(减)、*(乘)、/(除)、%(取余)注意:整数除法舍弃小数(
5/3=1),%仅支持整型(符号由被除数决定,如-7%4=-3)
6.2 强制类型转换
格式:
(目标类型)表达式,仅临时转换值,不改变原变量类型示例代码:强制类型转换
cpp#include <iostream> using namespace std; int main() { float x = 3.6; int i = (int)x; // 临时转换x的值为3,x本身仍为3.6 cout << "x=" << x << ", i=" << i << endl; // 运行结果:x=3.6, i=3 return 0; }
6.3 自增自减运算符
++i/--i:先增减1,再使用值
i++/i--:先使用值,再增减1示例代码:自增运算符区别
cpp#include <iostream> using namespace std; int main() { int i = 0, j; j = i++; // 先赋值j=0,再i=1 cout << i << " " << j << endl; // 输出1 0 i = 0; j = ++i; // 先i=1,再赋值j=1 cout << i << " " << j << endl; // 输出1 1 return 0; }
6.4 逗号运算符
格式:
表达式1, 表达式2, ..., 表达式n求值顺序:从左到右,整个表达式的值为最后一个表达式的值
示例代码:逗号表达式
cpp#include <iostream> using namespace std; int main() { int a = 2, b = 4, c = 6, x, y; y = (x = a + b, b + c); // x=6,y=10 cout << "y=" << y << ", x=" << x << endl; // 运行结果:y=10, x=6 return 0; }
6.5 混合运算类型转换
不同类型数据混合运算时,按"低级别→高级别"自动转换:
char/short → int → unsigned → long → float → double
七、总结
本章核心是掌握"数据如何描述"和"数据如何操作":数据类型决定了数据的存储方式和范围,常量与变量是数据的载体,运算符与表达式实现了数据的计算逻辑。学习时需重点关注:
变量命名规范和初始化要求
整型溢出、浮点型舍入误差等边界问题
字符与整型的互通性、字符串与字符的区别
运算符优先级(先乘除后加减)和结合性(多数自左至右)
建议结合示例代码反复练习,重点掌握符号常量、转义字符、自增自减、强制类型转换的使用场景,为后续循环、分支等语法学习打下基础。