1.函数的形参
函数的形参为函数提供已命名的局部存储空间
fun1 (string name, int age) { std::cout << name << std::endl; std::cout << age << std::endl; }
string name 和 int age则为形参,提供类型和命名标识,让编译器知道存储空间大小、名称,形参由调用函数时传递给函数的实参初始化。
2.函数实参
实参可以是表达式,也可以是变量或者字面型变量。
调用函数时,形参被实参初始化。
fun1( "peter", 25 );
"peter" 初始化 name 局部变量, 25 初始化 age
3.非引用形参 和 引用形参
每次调用函数,都会重新创建所有的形参。
非引用形参,如字面值变量,每次都会创建新的实参值的副本,函数内部改变参数值,不会影响实参。
指针引用实参,每次重新创建所有指针,指向与实参指针所指相同,改变指针指向对象的值,实参指向对象为同一对象,所以实参值也跟着改变。
形参中可以使用 const 修饰符,避免引用复制,即避免被修改
void fun1(const string name) { name = "sun yang"; // error 不能更改const 变量的值 }
4.main 函数参数
#include <iostream> int main(int argc, char* args[]) { std::cout << argc << std::endl; for (var i = 0; i < argc; i++) { std::cout << args[i] << std::endl; } }
argc ( argument count ) 参数的个数
args ( arguments ) 字符数组指针,用于获取参数
5.内联函数
函数名前加上inline 关键字,在调用该函数的地方,代码被解开释放到调用位置。
内联函数被调用时,因为不用再进行函数调用栈的重新申请,所以速度比调普通的函数快。
6.this 指针
对象方法内部隐式包含this指针,可以通过this.属性名或者this.方法名访问对象内部数据。
如果方法中有使用const限定this指针,则该this指针不能被修改或者覆盖:
如function aa const(string name, int age)