C++基础之函数

函数的定义

```

类型标识符 函数名(形式参数列表)

{

变量的声明

语句

}

```

函数的声明

调用一个函数钱必须先声明函数的返回值类型和参数类型。

返回值

指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值,用return语句返回给主调函数。

```

return(表达式);

```

1.函数返回值类型和函数的类型应该保持一致,不一致则以函数类型为准,自动进行类型转换。

2.返回值为整型,可以省去类型标识符

3.可以有多个return,但每次调用只能有一个return语句被执行,因此只有返回一个函数值

4.不返回函数值的函数,类型标识符为 `void`

5.没有参数和返回值的函数为空函数

形参和实参

1.函数未调用,形参不占用内存,调用时才分配内存,调用结束即释放

2.实参时确定的值,调用函数式传递给形参,形参为指针类型,将地址值传递给形参

3.实参与形参类型,个数应相同

4.单项传递,即实参传给形参

默认参数

在定义函数是,已经设置好的参数。

可变参数

在参数列表中有 `...`

函数调用

1.传值调用:主调函数将实参赋值给被调用函数的形参出,传递参数是结构体对象,可以通过传指针或使用变量的引用老替换传值调用

2.嵌套调用

3.递归调用:直接或间接调用自己的函数

变量作用域

全局变量:在函数体外定义的变量,在程序开始时创建并分配空间,程序结束时释放内存并销毁

局部变量:在函数体内定义的变量,函数调用时创建,并在栈中分配内存,调用结束后销毁并释放

重载函数

多个函数具有相同的函数标识符,但参数类型和个数不同,函数 调用时,编译器以参数的类型及个数类区分调用哪个函数

内联函数

`inline`把函数定义为内联函数,编译器会在每个调用该函数的地方展开一个函数的副本

变量的存储类别

变量存储方式的不同会使变量的生存期不同,静态变量一直存在,动态变量时而存在时而消失

1.auto变量:没有说明存储类型的变量均视为自动变量

1.作用域仅限于定义该变量的个体内

2.属于动态存储方式,变量分配的内存在栈中,函数调用结束是则释放

3.不同个体中允许使用同名的变量而不会混淆

2.static变量:将变量声明为静态变量

1.在函数内定义,程序退出时释放,生存期为整个源程序

2.作用域与自动变量相同

3.编译器会为静态局部变量赋予0值

3.regidter变量:将局部变量的值存放在CPU中的寄存器中,使用时不需要访问内存,直接在寄存器中读写

1.动态存储方式,需要采用静态存储方式的变量不能定义为寄存器变量

2.编译程序会自动决定哪个变量使用寄存器存储

4.extern变量:使用其他源文件中的全局变量时,只需要在本源文件中使用external声明这个变量即可

猜你喜欢

转载自www.cnblogs.com/lalavender/p/10487001.html