c++关于void的??

来源:百度知道 编辑:UC知道 时间:2024/05/10 23:09:01
#include<iostream>
using namespace std;
void main(void){
int i=5;
cin>>i;
f(i);
}
void f(int n)
{ if(n==0)
return;
else {cout<<n%10;
f(n/10);
cout<<n%10;
return;
}
}

这是别的地方抄的程序,怎么通过不了编译啊?谁能解释下这个程序,还有,那个main括号中的void是什么意思啊 ,哪位高手能帮忙解释一下啊。。。。谢谢~~满意了给分

你弄的这个程序比较乱,首先你要知道这个程序是干什么的,我看这里面问题最大的就是return,return是用来给函数返回一个值,理所当然要有值返回的,而程序里的return后竟然没有任何值返回。
然后还有,void表示无类型,比如void main(void),第一个void表示该main()函数没有返回值,第二个void则表示不接受任何参数,在C++里括号空着其实默认就是不接受参数。这样说来,在下面的自定义函数f(int n)中,前面加上了void,就意味着,该函数没有返回值,这显然和目的不同,因为由函数下面的定义可知,编者是想要返回值的,所以要把void改为和返回值一样类型(比如,int或float等)。
这个程序其实问题很大的,到处都是多余语句,比如
int i=5;
cin>>i;
f(i);
既然已经给i了初始值,那后面还干嘛给i一个值呢,你说是吧。

再说一下
int i=5;
cin>>i;
f(i);
中,f(i); 这条语句,显然编者是想输出自定义函数f(5),和定义f(i)时的void一致,是可以理解的,但是这又要回到下面的定义中,是否f(int n)的类型是viod
呵呵,抱歉呀,我都有点迷糊了,不知道该说这个程序的哪一快了,感觉这个程序有点驴唇不对马嘴,应该是编者的基本概念掌握的不好吧。呵呵~~~
希望我的回复能够对你有点儿用。

#include<iostream>
using namespace std;
void f(int n)
{ if(n==0)
return;
else {cout<<n%10;
f(n/10);
cout<<n%10;
return;
}
}

void main(void){
int i=5;
cin>>i;
f(i);
}

//............