C++基础复习
1 变量和常量
- C++规定在创建一个变量或者常量时,必须要制定出相应的数据类型,否则无法给变量分配内存
- 常量不可修改,一旦修改便会报错(通常在变量定义前加关键字const)
- 宏常量不需要制定数据类型,因为其不占内存
- 不同数据类型占用空间不同,取值范围也不同。一旦定义的变量或常量的数值超出取值范围,则输出的值出现错误
- 数据类型存在的意义:给变量分配合适的空间
2 基本数据类型

- 利用sizeof关键字可以统计数据类型所占内存大小
-
- 语法:sizeof(数据类型or变量)
3 运算符
- 两个整数相除结果仍然是整数
- 在除法运算中,除数不能为0
- 只有整型变量可以进行取模(取余,符号%)运算
- 前置递增与后置递增的区别:前置递增先对变量进行++,再计算表达式;后置递增先计算表达式,后对变量进行++
- 逻辑运算符:用于根据表达式的值返回真值或假值

4 程序流程结构
- 三目运算符返回的是变量,可以继续赋值
- switch语句中表达式类型只能是整型或者字符型
- case里如果没有break,那么程序会一直向下执行
- 与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
- break的使用时机:
- 出现在switch条件语句中,作用是终止case并跳出switch
- 出现在循环语句中,作用是跳出当前的循环语句
- 出现在嵌套循环中,跳出最近的内层循环语句
- 出现在switch条件语句中,作用是终止case并跳出switch
- continue出现在循环语句中,跳过本次循环中余下尚未执行的语句,继续进行下一循环,并没终止整个循环,而break会跳出整个循环
5 数组
- 数组名属于常量,不可以赋值
- 简单的冒泡排序:
#include <iostream> using namespace std; int main() { int arr[9] = {8, 9, 4, 3, 6, 1, 0, 7, 5}; for (int i = 0; i < 9 - 1; i++) { for (int j = 0; j < 9 - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < 9; i++) { cout << arr[i] << endl; } system("pause"); return 0; }
6 函数
- 函数定义里小括号参数列表内的参数称为形式参数,函数调用时传入的参数称为实际参数
- 值传递
- 函数调用时实参将数值传递给形参
- 值传递时,形参修饰不了实参,如果形参发生改变,不会影响实参
- 地址传递是利用指针作为函数参数,可以修改实参的值,如果想修改实参,可以利用指针进行地址传递
- 函数的声明可以多次,但是函数的定义只能有一次
7 指针
- 指针可以用来间接访问内存,可以利用指针变量保存地址
- 解引用:指针变量通过" * "操作符,操作指针变量指向的内存空间
int main() { int a = 10; int *p; p = &a; *p = 5; cout << &a << endl;//输出a的地址,”&“符号用来获取a的地址 cout << p << endl;//输出指针变量p cout << *p << endl;//通过解引用修改a的值,并输出 system("pause"); return 0; }
- 指针也是一种数据类型,所有指针类型在32位操作系统下是4个字节
- 指针变量指向内存中编号为0的空间称为空指针(int *p=NULL),用来初始化指针变量,但是其指向的内存不可访问
- 指针变量指向非法的内存空间称为野指针,也不可访问
- const修饰指针的三种情况:
- const修饰指针称为常量指针
- const修饰常量称为指针常量
- const既修饰指针,又修饰常量
int main() { int a = 10; int b = 10; // const修饰的是指针,指针指向可以改,指针指向的值不可以更改 const int *p1 = &a; p1 = &b; // 正确 //*p1 = 100; 报错 // const修饰的是常量,指针指向不可以改,指针指向的值可以更改 int *const p2 = &a; // p2 = &b; //错误 *p2 = 100; // 正确 // const既修饰指针又修饰常量 const int *const p3 = &a; // p3 = &b; //错误 //*p3 = 100; //错误技巧:看const右侧紧跟着的是指针还是常量, 是指针就是常量指针,是常量就是指针常量 system("pause"); return 0; }
-
当数组名传入到函数作为参数时,被退化为指向首元素的指针
8 结构体
- 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
- 结构体变量利用操作符 ''.'' 访问成员
- 结构体指针可以通过 -> 操作符访问结构体中的成员

浙公网安备 33010602011771号