参考文献:C++primer plus
其实说函数模板<基于基本数据类型:int char形数据 不包括数组、指针、结构体、类>
using namespace std;
template
void f(T a,T b);
void main(){
int i=2;
int y=3;
f(i,y);
}
template
void f(T a,T b){
}
在这段代码中,i变量、变量y内存拷贝函数f的栈头
using namespace std;
template
void f(T &a,T &b); //函数的原型
void main(){
int i=2;
int y=3;
f(i,y);//函数的调用
}
template
void f(T &a,T &b){ //函数的实现
}
这段代码中,将变量i、变量y**内存地址**拷贝到函数f的栈头,
于是函数中变量a,变量b拥有了main函数中变量i,y的地址,于是变量i,y的范围:从main函数中扩展到了f函数中,
总结:我们可以看出:函数的调用传递参数:参数一共有3个重要性质:1:类型例如上面:为int形 (由编译器与人决定)2:参数变量的值(即参数的内存)(有物理介质决定)3:参数变量的地址(有操作系统决定)
从上面函数中我们可以得到:参数int形(性质1)有调用函数决定 ,性质2由调用函数决定,如果传递的地址,这由调用函数与被调用函数决定,性质3有被调用函数决定!
指针为变量从main函数的封闭空间解放,为变量打开了另外一扇窗户:可以简约的叫
打开了变量的接口