c++基础
基础知识
1.概念
- 变量:给一段指定的内存空间起名,方便操作这段内存
- 常量:记录程序中不可更改的数据,#define 和 const
- 关键字,标识符的命名规则:不能以数字开头
2.数据类型
创建一个变量或者常量时,需要指定相应的数据类型,否则无法给变量分配内存。
- sizeof (数据类型 / 变量) 关键字:统计数据类型所占空间大小
- 整型,最大 INT_MAX;最小 INT_MIN:判断溢出的方法,nums > INT_MAX / 10 || nums < INT_MIN / 10
- 实型(浮点型):科学计数法3e2,3e-2。
- 字符型
- 转义字符 \ :\n , \t, \\
- 字符串型:
- char a[] = "adsda"
- string a = "asdfaf"
- bool布尔类型
3.运算符
- 算术运算符:+ - * / % ++ --
- 赋值运算符:= += -= *= /= %=
- 比较运算符:== != < > <= >=
- 逻辑运算符:! && ||
4.程序流程结构
- if:三目运算符 max = a > b ? a :b;
- switch
- for ; while ; do ···while
- break ; continue ; goto :跳转到标记所在位置
5.数组
- 一维数组
- int a[2];
- int a[2] = {1, 2};
- int a[] = {1, 2};
- 数组名称的用途
- 统计整个数组占用的内存空间:sizeof(arr)
- 获取数组在内存中的首地址:(int)arr ; (int) &arr[0]
- 二维数组
- int a[2][2];
- int a[2][2] = {{1, 2}, {3, 4}}
- int a[2][2] = {1, 2, 3, 4}
- int a[][2] = {1, 2, 3, 4}
- 用 memset 进行初始化
#include <string.h>
void *memset(void *s, int c, size_t n);
s:数组变量的地址
c:填充的字符
n:填充区域的大小
6.函数
作用:将经常使用的代码封装起来,减少重复代码。
定义:返回值类型; 函数名; 参数列表; 函数体语句; return 表达式

函数调用:函数名;小括号;参数
值传递:形参改变,不影响实参
声明:告诉编译器函数名称,以及如何调用函数。函数的实际主体可以单独定义。防止找不到函数。
分文件编写:让代码结构能清晰
- 创建后缀名为.h的头文件
- 创建后缀名为 .cpp的源文件
- 在头文件中写函数的声明
- 在源文件中写函数的定义
7.指针
指针变量保存的是地址
作用:通过指针间接访问内存
int a = 10; int *p = &a; cout << *p << endl; cout << p;
所占内存空间:操作系统的位数,32位就是4字节,64位就是8字节
空指针:指向内存中编号为0的空间,用于初始化指针变量(空指针指向的内存不可以访问)(0 - 255 为系统占用内存,不允许用户访问)
野指针:指向非法的内存空间,需要尽量避免
const修饰指针:
- 常量指针:指针指向的值不可变
- 指针常量:指针指向的地址不可变,即指针不可变
- 以上两个结合:都不可以改
指针和数组:利用指针访问数组中的元素
指针和函数:利用指针作函数参数,可以修改实参的值(本质是传递了实参的地址,所以可以改变实参)
8.结构体
用户自定义的数据类型,允许用户存储不同的数据类型。
struct 结构体名 {结构体成员列表}变量名;
定义时,struct不可以省略,创建结构体变量时,可以省略;结构体变量利用操作符 "." 访问成员。
结构体数组:将自定义的结构体放入到数组中方便维护
struct 结构体名 数组名[元素个数] = {{}, {},··· {}}
结构体指针:通过指针访问结构体中的成员,利用操作符 '->' 可以通过结构体访问结构体属性
void add(const struct student *stu) //*减少了使用的内存空间,const防止修改结构体的值
项目实践:通讯录管理系统
浙公网安备 33010602011771号