(1)非const非引用,如下:
#include<iostream.h>
int add(int val); //非const 非引用形参函数声明
main()
{
const char v1='a';
char m='b';
const int v2=31;
int k="32";
int v3=add(v1); //v1可换成m,v2,k
cout<<"v3 is "<<v3<<endl;
return 0;
}
int add(int val)
{
return val;
}
此情况可给形参传递const实参,也可传递非const实参,也可以是不同类型,当然要能隐式转换。可以修改实参,但调用结束实参值无变化。
(2)const 非引用形参
#include<iostream.h>
int add(const int val); //const 非引用形参函数声明
main()
{
const char v1='a';
char m='b';
const int v2=31;
int k="32";
int v3=add(v1); //v1可换成m,v2,k
cout<<"v3 is "<<v3<<endl;
return 0;
}
int add(const int val)
{
return val;
}
此情况可给形参传递const实参,也可传递非const实参,也可以是不同类型,当然要能隐式转换。只不过不能对传递来的实参进行修改。
(3)非const 引用形参
#include<iostream.h>
int add(int &val); //非const 引用形参函数声明
main()
{
const char v1='a';
char m='b';
const int v2=31;
int k="32";
int v3=add(k); //此时不可用v1,m,v2替换
cout<<"v3 is "<<v3<<endl;
return 0;
}
int add(int &val)
{
return val;
}
即非const引用形参只能与完全同类型的非const对象关联。可以修改实参,调用结束后实参值也随之改变。
(4)const 引用形参
#include<iostream.h>
int add(const int &val); //const 引用形参函数声明
main()
{
const char v1='a';
char m='b';
const int v2=31;
int k="32";
int v3=add(v1); //v1可换成m,v2,k
cout<<"v3 is "<<v3<<endl;
return 0;
}
int add(const int &val)
{
return val;
}
此情况同(2).
指针部分待续。
文章评论(0条评论)
登录后参与讨论