C++子函数中对于有返回值和无返回值的区分
今天发现了自己在学习函数调用上的一个误区,在说这个误区之前。我先简单说明一下:
- 子函数的函数类型指的是该子函数被调用执行时返回主调函数的数据类型,主调函数就是指调用其他子函数或库函数的函数。
- 可以函数类型将分为有返回值和无返回值两种。
我一直以为返回值的函数类型(int,double……)就是只返回一个值,不会将本子函数中的一些cout等语句执行并显示出来,而无返回值的在被调用后只执行,并不返回一个值。
今天我试了一下,发现有返回值的不仅可以返回一个值,也可以将本函数一些语句如cout等语句执行,运行出来。如下面程序所运行出的结果:
#include<iostream>
using namespace std;
int ss(int n) //有返回值类型
{
cout<<"with error ,no function"; //这几步也会被执行
cout<<endl;
return 1;
}
int main()
{
int n;
cout<<"随便输入一个数:";
cin>>n;
ss(n);
system("pause");
return 0;
}
后面阅读书籍才发现是自己概念没弄清楚,函数的调用,就会执行调用函数中所有语句,有返回值的相对于无返回值而言只不过是返回值的问题,但是在使用有返回值的函数类型是一定得有return 出现(返回一个值)。
现在想起来才感觉自己好蠢,当然,这里只说一下最基本的函数调用。
希望各位大佬多多指教!