C/C++函数

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) 

原文地址:https://www.cnblogs.com/haiyupeter/p/2625961.html