将数值参数传递给函数,函数将其赋值给一个新的变量。
double volume = cube(side);//函数调用,side=5.
double cube(double x)//函数原型
在函数声明时将形参定义为指针,此时的实参必须是地址值,这时的函数参数传递就是地址传递。
在地址传递中,形参指针和实参指针都指向同一个地址,因此在函数中形参地址所指的内容都会被改变。但是在函数中反复利用指针间接访问,会使得程序不够简洁。
在函数定义时,在形参前加&就形成了引用传递,利用引用传递实现在函数中修改实参的数据,同时也避免程序易出现问题。
void swap(&int, &int)
int sum_arr(int arr[], int n)
const int ArSize = 4;
int main()
{
...
int cookies[ArSize] = {1, 2, 3, 4};
int sum = sum_arr(cookies, ArSize);
...
}
int sum_arr(int arr[], int n){
...
}
函数如何使用指针处理数组
int sum = sum_arr(cookies, ArSize);
int sum_arr(int * arr, int n) // arr = array name
C-风格字符串由一系列字符组成,以空值字符结尾。
将C-风格字符串作为参数的函数
三种选择的类型都是 char * 。实际传递的是字符串第一个字符的地址。
char ghost[15] = "gallo"; //ghost is &ghost [0]
char * str = "galum";
返回C-风格字符串的函数
函数无法返回一个字符串,但可以返回字符串的地址。
char * buildstr(char c, int n); //该函数返回一个指针
string 对象与结构更相似,可以将一个对象赋值给另一个对象。如果需要多个字符串,可以声明一个string对象数组。
传递结构的地址,形参声明为指向结构的指针,由于形参是指针而不是结构,因此应间接成员运算符(->),而不是成员运算符(句点)
可以按值传递结构,这时函数将使用原始结构的副本,另外函数也可以返回结构。也可以地址传递,结构名只是结构的名称,要获得结构的地址,必须使用地址运算符&。