目录
1. 常量
2.关键字
3.标识符命名规则
4.数据类型
4.1 整型
4.2实型(浮点型)
4.3 字符型
4.4 字符串型
4.5布尔类型 bool (只占一个字节大小)
5.sizeof关键字
6.数据的输入
7. goto语句
8. 一维数组 // 数组名是常量,进行初始化后,不能再对其进行赋值操作
9.二维数组定义方式:
10.函数:
10.1 函数的定义
10.2 值传递和引用传递
11. 指针 (指针就是一个地址)
10.1 指针变量的定义和使用:
10.2 空指针和野指针
10.3 const修饰指针。
10.4指针和数组
10.5指针和函数
12.结构体
12.1 结构体基本使用方法
12.2 结构体数组
12.3 结构体指针
12.4结构体嵌套结构体
12.5 结构体做函数参数
12.6 结构体中const使用场景
1. 常量
作用:用于记录程序中不可更改的数据。
c++定义常量两种方式
1. #define 宏常量: #define 常量名 常量值
通常在文件上方定义,表示一个常量
2 const修饰的变量 const 数据类型 常量名 = 常量值
通常在变量定义前关键字const, 修饰该变量为常量,不可修改。
2.关键字
作用:关键字是c++中预先保留的单词(标识符)
**在定义变量或常量时候,不要用关键字**
c++关键字如下:
3.标识符命名规则
作用:c++规定给标识符(变量、常量)命名时,有一套自己的规则
*标识符不能是关键字
*标识符只能由字母、数字、下划线组成
*第一个字符必须为字母或下划线
*标识符中区分大小写
4.数据类型
c++规定在创建一个变量或常量时,必须要指定出相应的数据类型,否则无法给变量分配内存
4.1 整型
short 2字节 -2^15 - 2^15-1
int 4字节 -2^31 - 2^31-1
long 4字节 -2^31 - 2^31-1
long long 8字节 -2^63 - 2^63-1
4.2实型(浮点型)
默认情况下 输出一个小数,会显示出6位有效数字
float 4字节 7位有效数字
double 8字节 15-16位有效数字
4.3 字符型
作用:字符型变量用于显示单个字符
语法 char ch = 'a';
注意1:在显示字符型变量时,用单引号字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
c和c++字符型变量只占用1个字节。
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
4.4 字符串型
作用:用于表示一串字符
1.c风格字符串 char 变量名[] = “字符串值”
2. c++风格字符串 string 变量名 = “字符串值” c++字符串要引用头文件 include<string>
4.5布尔类型 bool (只占一个字节大小)
作用:布尔类型数据代表真或假的值
bool类型只有两个值:
true --- 真 本质是1。
false --- 假 本质是0。
5.sizeof关键字
作用:利用sizeof关键字可以统计数据类型所占内存大小
语法:sizeof(数据类型/变量)
6.数据的输入
作用:用于从键盘获取数据
关键字:cin
语法: cin >> 变量
7. goto语句
作用:可以无条件跳转语句
语法 goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。
8. 一维数组 // 数组名是常量,进行初始化后,不能再对其进行赋值操作
三种定义方式:
数据类型 数组名[数组长度]
数据类型 数组名[数组长度] = {值1,值2...}// 这种定义方式,如果在初始化时没有给足够的数,数组会自动将后面的数据默认为0
数据类型 数组名[] = {值1,值2...}
9.二维数组定义方式:
1. 数据类型 数组名[行数][列数];
2. 数据类型 数组名[行数][列数] = { {数据1,数据2},{数据3,数据4}};
3. 数据类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4};
4. 数据类型 数组名[][列数] = {数据1,数据2,数据3,数据4}
10.函数:
作用:将一段经常使用的代码封装起来,减少重复代码。
一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。
10.1 函数的定义
函数的定义一般主要有五个步骤:
1.返回值类型
2.函数名
3.参数列表
4.函数体语句
5.return表达
10.2 值传递和引用传递
值传递,形参的值改变并不会影响实参的值
引用传递,形参的值改变会直接影响实参的值
地址传递,形参的值改变会直接影响实参的值,地址传递在实际调用时,需要传递地址如h(&a,&b)
// 数组 实际进行的是地址传递
11. 指针 (指针就是一个地址)
在64位系统下指针占用八个字节,在32位操作系统下指针占用四个字节(无论是哪种数据类型)
作用:可以通过指针间接访问内存
*内存编号是从0开始记录的,一般用十六进制数字表示
*可以利用指针变量保存地址
10.1 指针变量的定义和使用:
语法: 数据类型 * 变量名;
例如:
使用: 可以通过解引用的方式来找到指针指向的内存地址中的有效数据, 在指针前加*,例如 *p ,*代表解引用。
10.2 空指针和野指针
空指针:指针变量指向内存中编号为0的空间 NULL
用途:初始化指针变量
注意:空指针指向的内存是不可以访问的
注意:0-255之间的内存编号是系统占用的,因此不可以访问
野指针:指针变量指向非法的内存空间。在程序中,空指针和野指针都不是我们申请的空间,所以我们权限对其进行访问。
10.3 const修饰指针。
const修饰指针有三种情况:
1.const修饰指针 ----- 常量指针 例如: const int *p = &a;
特点:指针的指向可以修改,但是指针指向的数据值不可以修改
2.const修饰常量 ----- 指针常量 例如 int * const p = &a;
特点:指针的指向不可以修改,但是指针指向的数据值可以修改 3. const即修饰指,又修饰常量。 例如:const int * const p = &a;
特点:指针的指向和指针指向的数据值都不可以修改。
10.4指针和数组
作用:利用指针访问数组中元素
10.5指针和函数
void bubbleSort(int *arr, int len)
void bubbleSort(int arr[], int len) // 这两种定义方式都可以。
12.结构体
12.1 结构体基本使用方法
基本概念: 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。
结构体定义和使用
语法:struct 结构体名 {结构体成员列表};
通过结构体创建变量的方式:
struct 结构体名 变量名
struct 结构体名 变量名 = {成员1值, 成员2值...}
定义结构体时顺便创建变量
// 在创建变量时,struct关键字可以省略
12.2 结构体数组
作用:将自定义的结构体放入到数组中方便维护
语法:struct 结构体名 数组名[元数个数] = { {}, {},......{} }
12.3 结构体指针
作用:通过指针访问结构体中的成员
利用操作符->可以通过结构体指针来访问结构体属性
12.4结构体嵌套结构体
作用:结构体中的成员可以是另一个结构体
12.5 结构体做函数参数
作用:将结构体作为参数向函数中传递
传递方式有三种:
值传递 // 实际是赋值,如果数据量特别大,使用值传递会消耗大量空间和时间
地址传递
引用传递
12.6 结构体中const使用场景
作用:用const来防止误操作