函数

int func(int x){        //x:形式参数
    ....
}


int main(){
    ....
    int res=func(z);    //z:实际参数
}

实参与形参具有不同的存储单元,

实参与形参变量的数据传递是“值传递”;

函数调用时,系统给形参分配存储单元,并将实参对应的值传递(copy)给形参;

P.S. 实参与形参的类型必须相同或可以兼容;

示例:

#include<iostream>
using namespace std;
void exchange(int a, int b){
    int p;
    p = a; a = b; b = p;
}
int main(){
    int a = 3, b = 5;
    exchange(a, b);
    cout<<a<<" "<<b<< endl;
    return 0;
}

输出结果将会是3 5.  因为在调用exchange()时,main函数里的a和b的值被copy给exchange(),然后修改的是exchange函数内存空间里的a和b,而不是main函数内的。那如何实现exchange功能呢?可以用指针

#include<iostream>
using namespace std;
void exchange(int *a, int *b){
    int p;
    p = *a; *a = *b; *b = p;
}
int main(){
    int a = 3, b = 5;
    exchange(&a, &b);
    cout<<a<<" "<<b<< endl;
    return 0;
}
View Code

相关文章: