【面向对象编程C++】| 基础语法

一、C++ 数据类型

1. 基本内置类型

  • 整型:short int短整型、int整型、long int长整型
  • 字符型:char
  • 浮点型:float单精度、double双精度、long double长双精度
  • 布尔型:bool(C++ 独有,C 没有原生 bool)

2. 构造类型(由其他类型组合而成)

枚举enum、数组、结构体struct、共用体union、类class(C++ 核心特性)

3. 指针类型

存放内存地址

4. 引用类型

变量的别名(C++ 新增,C 语言没有引用)

5. 空类型 void

无类型,多用于函数返回值、通用指针


二、常量

1. 整型常量

  • 十进制:正常数字,如123
  • 八进制:数字开头加 0 ,如012
  • 十六进制:数字开头加 0X / 0x ,如0X1A

2. 浮点数常量

  1. 十进制小数形式:21.456
  2. 指数形式:3.14e-2 等价于 \(3.14 \times 10^{-2}\)

3. 字符型常量

存储单个字符

复制代码
char ch = 'a';
  • 使用单引号 包裹,只能存放 1 个字符
  • 占用 1 字节

4. 字符串常量

表示一串连续字符

  • C 语言写法:char str1[] = "hello world";

  • C++ 推荐 string 类:

    #include
    string str = "hello world";

字符串使用双引号 末尾自动隐藏结束符\0

  • "abc" 实际占 4 字节(a b c \0)
  • "abc\n" 4 个可见字符,占用 5 字节(a b c \n \0)

三、各类类型占用内存 & 取值说明

  1. 整型:二进制存储

    • short int:2 字节
    • int:4 字节
    • long int:8 字节
    • unsigned int 无符号整型:4 字节(只存非负数)

    内存单位:8bit (位) = 1 字节

  2. 浮点型

    • float单精度:4 字节,有效数字 6 位
    • double双精度:8 字节,有效数字 15 位
    • long double长双精度:16 字节,有效数字 18~19 位
  3. bool 布尔类型

    • true 真,底层值为 1
    • false 假,底层值为 0

四、变量

变量命名规则

  1. 只能由字母、数字、下划线组成,首字符不能是数字
  2. 不能使用 C++ 关键字作为变量名
  3. 区分大小写,A和a是两个变量

变量作用域

  • 函数内部定义:局部变量
  • 函数外部定义:全局变量
  • 函数形参:属于局部变量

五、基础运算符

1. 算术运算符 + - * / % ++ --

  1. 整数相除,结果仍为整数(截断小数);小数之间可以相除

  2. 运算只要存在float,结果默认double类型

  3. 取模%只支持整型,小数不能取模

  4. 除法、取模运算,除数不能为 0,会直接报错

  5. 自增 / 自减:前置、后置单独写时无差别

    • 前置++a:先自增,再参与表达式计算
    • 后置a++:先参与表达式计算,运算结束后再自增

    例:a3++ *10 先计算a3*10,表达式结束后a3 += 1

2. 赋值运算符

=、+=、-=、*=、/=、%=

3. 比较运算符

==、!=、>、<、>=、<=

判等是两个等于号==,单个=是赋值,极易踩坑

4. 逻辑运算符

&&逻辑与、||逻辑或、!逻辑非

5. 位运算符

&按位与、|按位或、^异或、~按位取反、<<左移、>>右移

  • &按位与:两位都为 1,结果才是 1,否则 0
  • |按位或:两位都为 0 才是 0,否则 1
  • ^异或:相同为 0,不同为 1

6. 杂项运算符

sizeof():返回变量 / 类型占用的字节大小


六、C++ 运算符优先级总表

从上到下优先级依次降低;同行优先级相同,看结合性决定求值顺序

表格

优先级 类别 运算符 结合性
1(最高) 后缀运算符 () [] -> . ++ -- 从左到右
2 一元运算符 + - ! ~ ++ -- (type) * & sizeof 从右到左
3 乘除取模 * / % 从左到右
4 加减 + - 从左到右
5 移位 << >> 从左到右
6 关系比较 < <= > >= 从左到右
7 相等判断 == != 从左到右
8 位与 AND & 从左到右
9 位异或 XOR ^ 从左到右
10 位或 OR ` ` 从左到右
11 逻辑与 AND && 从左到右
12 逻辑或 OR ` ` 从左到右
13 条件(三目) ?: 从右到左
14 复合赋值 `= += -= *= /= %= >>= <<= &= ^= =` 从右到左
15(最低) 逗号 , 从左到右

复习重点

  1. 右结合运算符 :一元运算符、三目?:、赋值运算符,其余大多左结合
  2. &&优先级高于||
  3. 位运算& ^ |优先级高于逻辑&& ||,写 if 条件容易出错
  4. 逗号运算符优先级最低
相关推荐
小蒋观天下1 小时前
专项方案:大场景港口AI安防、多干扰环境下的算法调优与落地实操
人工智能·深度学习·算法·安全·机器学习·计算机视觉·ai大模型
一个风轻云淡1 小时前
GCC 和 GDB命令简单解读
java·linux·前端
省钱兄--zs1 小时前
西安24小时自助健身房解决方案实战:系统开发与部署全流程指南
java·spring boot·系统架构·intellij-idea·需求分析
Evand J1 小时前
【电机滤波例程5】渐消因子自适应扩展卡尔曼滤波(EKF),MATLAB。PMSM负载突变下的状态估计。附下载链接
算法·matlab
H.莓飛1 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库011 小时前
Linux 8个常见运维故障排查
java·linux·运维
要开心吖ZSH2 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
好想像大佬一样能够ak所有2 小时前
Leetcode35.搜索插入位置
数据结构·算法·leetcode
aqiu1111112 小时前
【C++算法打怪专栏】LeetCode 165. 比较版本号(双指针与字符串流法)
c++·算法·leetcode