C与C++调用函数的问题
#include<iostream.h>
int &fun(char,int &,int &);
void main()
{
int tn(0),tc(0);
cout<<"Enter character";
char ch;
cin>>ch;
while(ch!='#')
{
fun(ch,tn,tc)++;
cin>>ch;
}
cout<<"Numter character:"<<tn<<endl;
cout<<"Other character:"<<tc<<endl;
}
int &fun(char cha,int &n,int &c)
{
if(cha>='0'&&cha<='9')
return n;
else
return c;
}
如程序所示,C++在引用函数,引用函数返回的是引用,形参也是引用。
我自然想到C函数问题,因为C中从来没有涉及到一个函数fun(int&,int&)这样的。为什么不能把引用就改成C中调用函数的模样?比如像下面这样:
#include<iostream.h>
int fun(char,int ,int );
void main()
{
int tn(0),tc(0);
cout<<"Enter character";
char ch;
cin>>ch;
while(ch!='#')
{
fun(ch,tn,tc)++;
cin>>ch;
}
cout<<"Numter character:"<<tn<<endl;
cout<<"Other character:"<<tc<<endl;
}
int &fun(char cha,int n,int c)
{
if(cha>='0'&&cha<='9')
return n;
else
return c;
}
还有一个问题,如果这样不可以,那么char也是引用,为什么不是&fun(char &cha,int &n,int &c)?
两个疑问,望大家不要鄙视,给我解惑,不胜感激。
[解决办法]