参数是调用函数与被调用函数之间交
换数据的通道,函数定义首部的参数称为形参,调用函数时使用的参数称为实参。实参形参一一对应。
cpp语言有三种参数传递机制:值传递,指针传递和引用传递。
1.值传递:实参的值被复制到对应的形参所标识的对象中去,成为形参的初始值,函数中语句对形参的操作与实参对象无关。
#include <iostream>
using namespace std;
void swap(int a, int b){ //形参
int temp;
temp=a;a=b;b=temp;
}
int main(){
int x=1,y=2;
swap(x,y); //实参
cout<<"x:"<<x<<endl;
cout<<"y:"<<y<<endl;
return 0;
}
2.指针传递:函数中的形参是指针类型,调用函数时将实参把对象的地址值赋给形参标识的指针变量,被调用函数可以通过形参指针间接访问实参地址所指对象,为避免被调用函数对实参所指对象的修改,可用const约束形参指针的访问特性。
#include <iostream>
using namespace std;
int func(const int *const p){
int a=10;
a+=*p;
return a;
}
int main(){
int x =10;
cout<<func(&x)<<endl;
}
3.引用传递:函数中形参是引用类型,实参是对象名,形参作为引用绑定在实参标识的对象上,对形参的操作就是对实参对象的操作,函数执行结束后撤销引用绑定。和指针传递一样,为避免被调用函数对实参对象的修改,可以使用 const限定引用。#include <iostream>
using namespace std;
void display(const int &p){
cout<<p<<endl;
}
int main(){
int a=1024;
display(a);
}