-
函数值传递时,形参发生的任何改变都不会影响实参
函数地址传递(指针作为形参)时,实参会被修改 -
函数声明的作用是提前告诉编译器函数的存在
-
函数的分文件编写,.h头文件写声明,.cpp源文件写定义
-
指针定义:
int a=10;
int* p; //定义指针
p=&a; //指针p记录a的地址,也可简化为 int* p=&a;
指针使用:
*p=1000; //*代表解引用,可以对指针指向内存中数据读写 -
指针所占空间:32(64)位操作系统下占4(8)个字节
查看方法:sizaof(int*)、sizeof§ -
空指针:指向地址编号为0地址,int* p=null; 0~255为系统占用内存,不可访问
-
野指针:指向非法内存空间,int* p=(int*)0x1100;
-
const修饰指针
const int* p=&a; //常量指针,指向可改,指向的值不可改
int* const p=&a; //指针常量,指向不可改,指向的值可改
const int* const p=&a; //指向与指向的值都不可改 -
指针访问数组
int arr[3]={1,2,3};
int* p=arr; //访问第一个元素
p++; //访问下一个元素 -
结构体数组:struct Student Arr[3]={{},{},{}};
-
结构体指针:struct student * p = & student1; p -> name;
-
结构体嵌套结构体:结构体作为另一结构体的成员
-
地址传递(指针)比值传递节省内存空间,为防止值被修改,可以用const修饰void Print(const Student * p);
-
system(“cls”):清屏操作
-
引用 int &b=a; //b引用a,b是a的别名
引用必须初始化,并且不可更改 -
函数中形参可以修饰实参的方法:地址传递,引用传递(优点为简化指针使用)
形参不可修饰实参的方法:值传递
在函数中不要返回局部变量的引用
函数的返回值为引用时,函数可以作为左值
引用的本质是一个指针常量
常量引用作为函数形参,可防止修改误操作 -
函数的默认参数:
如果形参中某位置有默认参数,往后都要有默认参数
声明与实现中最多只能有一处有默认参数 -
函数重载:同一作用域,函数名相同,形参不同(类型,个数,顺序),返回值要相同
注意:引用作为形参,可以传变量,但不可以传值(语法的错误),const修饰的引用可以传值 -
struct默认权限公有,class默认权限私有
-
成员属性私有化:控制访问权限;对写权限检测数据有效性



