C语言关于return 的疑问

1. int main () 主函数 最后没写return 0,无报错,是不是写不写一个样?

2,副函数 int f() 最后没写返回什么,就报错。函数最后没写什么,它是不是自动返回一个void类型值然后跟int 冲突所以报错呢?

3,为何主函数没报错,副函数却报错呢

4,副函数最后也能使用return 0; 他的意义跟主函数return 0 相同吗?

其实你提出的问题,跟编译器是有关的,有的编译器是不检测这些问题,有的当成警告,有的当成错误。我跟你说一下GNU的标准吧。

1.首先你要知道的一件事就是,C语言写出来的程序,一般被认作是要在命令行中执行的,也就是说,你写的程序可能成为一条类似于指令似的东西,所以,你的程序可能成为别的程序的参与或者入口值,那么,这就要求,你的程序必须返回一个东西,以表征你的程序运行有结果。想windows平台下的东西,基本都是窗口的么,鼠标点个叉,程序就没了,它可能不在意返回什么,但是你在命令行下,它有这方面的需求,要求你的程序必须返回一个值,所以C标准拓展规定主函数,必须有返回值。你这里说无报错,只是你用的可能是win平台下的编译器,它不检查这个而已。

2.副函数 int f() 最后没写返回什么,就报错。这个问题实在显而易见,你都说是int f(),前面的int是啥意思,也就是,你答应人家返回一个int,你却不给,这不是你说话不算话么,编译器当然不让你过了。你写void,可以不写return,但是你写int一定要返回一个int。(其实有很多编译器也不会检查这个,一般只是报个警告而已)

3.第三个问题,参考我上面两个解答,应该能明白点了吧。

4.不论在什么函数中,return 0 ;的意义就是返回一个0值。但是这个0值可能代表很多意义。对于通常的程序来说,主函数返回0,证明这个程序被正确执行,并结束。普通函数里的返回值,完全取决于你自己定义的意义。就是个0值而已。追问

return 0表示结束函数并返回函数0.

对于主函数来说,return 0跟return 1,return 100本质上是一样的,是这样吗?只不过我们把return 0自己定义为正常结束?这个0就好像是注释?

追答

其实,如果你只关注这一个程序,主函数return多少,都是没有任何差别的,但是,你考虑我说的情况,如果你的程序,是别人程序的入口,那么别人可能关注你的结果,比如,别人用了你的程序,不知道你的程序运行是不是正确的,他期待你的返回值,来告诉他你程序的运行情况,这时候,主函数的返回值变得尤为重要。比如说,你写一个程序完成除法操作。正常来说,返回a除b,但是你有没有想,一旦b=0怎么办,这个时候,你可能需要返回一个特殊的符号,来告诉用户,你的程序是非正常结束的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-20
你说的副函数,麻烦你说成子函数吧。
一个函数就算有返回值类型,不写return 什么子函数是不会出错的。当日,如果没有返回值的,你强制给它一个return 0那就会出错。
一个子函数的return 0是指一个函数运行后,这个函数所要返回的值。其实return 在哪里使用结果都是一样的,也就是结束这个函数。本回答被网友采纳
第2个回答  2013-02-20
1,2,3个问题:这是编译器问题,有些编译器在main里可以不用返回。建议按标准来。int类型的,应该返回一个整形数。
4:意义有点不同,主函数里的return 0主要是结束主函数(这里这个0可以随便改成1,2,3.。。。,主要是用来结束主函数,习惯写为0),整个程序段。而子函数里的return 0也有类似的功能,但因为子函数可能用来传参 如 int f() ,后面有m=f();这就意义不一样了。追问

那意思就是,子函数的return 0包含两种含义。一是结束此函数,二是返回0这个值?

因为主函数不被调用,所以返回0用不起来,所以只有结束此函数这个功能。是这样吗?

追答

是的,是这个意思。

第3个回答  2013-02-20
如果main函数显式返回(指return语句),编译器会自动给你添加一个,但其他函数不会,如果返回值不是void,必须显式返回.
你的C++教材上应该有跟上面差不多的描述,自己认真点看看吧.来自:求助得到的回答
第3个回答  2013-02-20
return 0; 这是一个返回值,必须要写的 。那可能是你的编译器有问题了。

关于C语言return命令的问题。
return 是表示返回给点用函数的值,当返回0时,就是假的意思,函数就结束了,当返回非0时,就返回这个值,说明是真

C语言关于return的问题
没有return NULL是因为在构造链表的时候给最后一项的next指针赋值为NULL了。(比如可能有List *Insert()函数这样的。所以在while循环时,当p=p->next=NULL时,再次while判断就不成立,return p即为return NULL了。第二个问题:当函数为void fun()时,即无需返回值时,可以写一个return ;表示函数结束...

C语言关于return 的疑问
你写void,可以不写return,但是你写int一定要返回一个int。(其实有很多编译器也不会检查这个,一般只是报个警告而已)3.第三个问题,参考我上面两个解答,应该能明白点了吧。4.不论在什么函数中,return 0 ;的意义就是返回一个0值。但是这个0值可能代表很多意义。对于通常的程序来说,主函数返回...

c语言return
return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否,主调函数可以通过返回值判断被调函数的执行情况...

关于C语言中的return的疑问
跳出main函数,如果是这样的:include<stdio.h> void main(){ float a,b,c;int flag=1;\/\/定义标志位 while(flag){ printf("Please input three numeric value\\n");scanf("%f%f%f",&a,&b,&c);if (a<=0||b<=0||c<=0){ printf("Illegal input!\\n");flag=0;} } } 就可以...

c语言中return是什么意思
在 C 语言中,return 语句有一个独特的功能,它可以提前终止函数的执行过程,从而提高程序的效率。如果在函数中使用了循环或者嵌套循环,可能会出现一些特殊情况,如无限循环、死循环或者其他异常条件。此时,可以使用 return 语句提前结束循环,从而避免程序陷入死循环。但是,在使用 return 语句时需要注意,...

c语言return返回什么值?
在C语言中,return语句具有以下作用:返回值:return语句可以用于从函数中返回一个值。这个值通常被称为函数的返回值。例如,如果你有一个函数用于计算两个数的和,你可以使用return语句来返回这个和:请点击输入图片描述 终止函数:return语句也可以用于立即终止当前函数的执行。这意味着一旦return语句被执行...

C语言里return 0和return
结论:在C语言中,return 0和return 1分别代表程序的正常退出和异常退出。这两个语句在函数调用中起着关键作用,通过返回值向调用者传递执行状态信息。return 0,通常在函数执行完毕且没有异常时使用,它指示程序正常结束,遵循编程惯例,表示函数成功完成其任务。此外,当函数返回0时,它也传递了一个隐含...

C语言return的问题
当然没有问题。其实它就代表结束当前函数执行,通常在返回值为void的函数使用。那么当然就是没有返回值了。比如下面的一个例子:void print(int n){ if(n < 0) return ; \/\/ 当n<0是,直接结束当前函数 else { for(int i=0;i<=n;i++) printf("%d\\t", i);} } ...

C语言问题,一个函数中有多个return时,是不是只要遇到第一个return,后面...
不会执行return 2 在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。

相似回答
大家正在搜