C++学习笔记
cpp 基础 杂记
- 数组
1 | // 定义 |
sizeof(arr) 获取整个数组所占空间
sizeof(arr[0]) 获取单个元素所占空间
指针
1 | int var = 1; |
其中数组比较特别,变量等同于数组的首项的地址
指针与函数
1
2
3
4
5
6
7
8
9
10
11
12//地址传递
void swap2(int * p1, int *p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
swap2(&a, &b); // & 取地址
// 地址传递可以做到修改传入的参数的值,默认情况下为值传递,不能做到对实参修改,但是地址传递可以
void bubbleSort(int * arr, int len) //int * arr 也可以写为int arr[] 数组的地址也是名字
{ }引用
1 | int i = 17; |
引用必须初始化,并且初始化后,不可以改变
此时 r变量和i变量相当是一样的,i的内容改变,r的内容也会改变,可以理解为变量的地址是一样的,赋值时相当于向同样的地址中存值
1 | // 指针用法 |
引用的本质为指针常量,特殊用法,可以放到等号的左侧接受别的值,作为函数返回时,不能返回局部变量,但是可以返回静态变量引用,需要static
修饰符
内存
- C++中在程序运行前分为全局区和代码区
- 代码区特点是共享和只读
- 全局区中存放全局变量、静态变量、常量
- 常量区中存放 const修饰的全局常量 和 字符串常量
new 操作符可以手动开辟自己的数据空间(堆区),通过delete释放
类
可以通过class
和struct
定义类,默认权限class
为私有,struct
(结构体)为公共
class三种权限
- 公共权限 public 类内可以访问 类外可以访问
- 保护权限 protected 类内可以访问 类外不可以访问
- 私有权限 private 类内可以访问 类外不可以访问
1 | class Person |
- 友元
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26class Building
{
//告诉编译器 goodGay全局函数 是 Building类的好朋友,可以访问类中的私有内容
friend void goodGay(Building * building);
public:
Building()
{
this->m_SittingRoom = "客厅";
this->m_BedRoom = "卧室";
}
public:
string m_SittingRoom; //客厅
private:
string m_BedRoom; //卧室
};
void goodGay(Building * building)
{
cout << "好基友正在访问: " << building->m_SittingRoom << endl;
cout << "好基友正在访问: " << building->m_BedRoom << endl;
}
// 可以访问到权限更大的属性