值传递
函数对形参的所有操作都不会影响到实参。
指针传递
指针传递参数本质上是值传递的方式,它所传递的是一个地址值。(如果改变被调函数中的指针地址,它将影响不到主调函数的相关变量)
引用传递
引用传递过程中,被调函数的形式参数也作为局部变量在栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。(如果想通过指针参数传递来改变主调函数中的相关变量, 那就得使用指向指针的指针,或者指针引用。)
数组传递
因为不能拷贝数组,所以我们无法以值传递的方式使用数组参数。因为数组会被转换成指针,所以当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针。
实参
实参:真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们必须有确定的值,以便把这些值传送给省参。
星参
星参:形式参数是指函数名后括号中的变量。因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。
全局变量
全局变量声明与所有函数之外,可以被所有函数使用。
局部变量
在一个函数内或复合语句内定义的变量称为局部变量。此外,函数的形参也属于局部变量。局部变量只允许在其定义的函数或复合语句中使用,离开所在的函数或复合语句后该局部变量将不能使用。(在不同的函数或复合语句中定义同名的局部变量,也不会相互干扰。)
当局部变量与全局变量同名时,在该函数或者复合语句内,局部变量优先于全局变量,也即“局部变量优先”原则。