C++自学之路(第二节)
数组
一维数组
下图运行结果,我们可以看到哪些地址是一样的
数组元素逆置
冒泡排序
二维数组
二维数组的数组名:
从结果观察,行与行之间的地址隔了多少个int??
函数
函数的定义
函数的调用
值传递
简言之,形参和实参是两块不同的内存区域,值传给形参后只是形参的值交换了,实参并没有交换!!
原理
函数的声明
如果不写函数声明,当函数定义写在main方法之后的话,程序执行到main中的函数调用,发现并没有相应的函数定义,因为程序是从上到下执行的,所以我们要在main前先声明有这个函数!!
函数的分文件编写
指针
指针定义
指针类型所占空间
所有的指针类型在x64(64位)下是8字节,在x86(32位)是4字节。
空指针和野指针
const修饰指针
指针和数组
指针和函数
地址传递可以修改实参的值
指针,数组,函数综合使用
结构体
简言之,就是定义用户自定义类型,比如说学生类型,然后学生类型里面又可以包含很多属性!访问属性用变量名.属性名
结构体定义
结构体数组
简言之,就是创建用户自定义类型的一个数组,比如学生类型数组,里面放三个学生,分别对三个学生的属性进行初始化或赋值!
结构体类型指针
结构体嵌套结构体
简言之,学生类型的结构体除了包含学生自身的普通属性,它还可以包含结构体类型,也就是包含一个老师类型的属性,表示该学生的老师是谁。
结构体做函数参数
同理值传递不会改变实参,地址传递会改变。
结构体中使用const
如果函数参数传递的是结构体类型变量,那么是将实参里面包含的所有内容拷贝一个副本,这消耗太大,而参数是结构体指针的话,不管该结构体类型包含多少属性,他都只占四个字节,我们只需用指针去读写实参里面的值即可。