在C语言中,主函数是不是必须要有返回值?

在C语言中,主函数是不是必须要有返回值?,第1张

在C语言中,主函数必须要有返回值

main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如 *** 作系统)。如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。

在C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给 *** 作系统,让 *** 作系统判断程序的执行情况(是正常结束还是出现异常)。

扩展资料:

在C和C++中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);”。正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 或void main()。然而这是错误的。

main函数的返回值应该定义为int类型,虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main,因为标准中从来没有定义过void main。g++32、dev C等环境中如果main函数的返回值不是int类型,根本无法通过编译。而gcc32则会发出警告。

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

函数可以有返回值,也可以没有返回值。

1、没有返回值的函数:功能只是完成一个 *** 作,应将返回值类型定义为void,函数体内可没有return语句。

2、有返回值的函数:函数的最后会有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数的。

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

扩展资料

C程序中的print函数:

是这样写的:printf("%d\n",printf("%d",printf("%d",i)));

一共有三个printf函数,我们可以使用一些代号来简化这个printf函数,如下:

代号A: printf("%d",printf("%d",i));

代号B: printf("%d",i)

则C程序代码可以简化为:printf("%d\n",A); 那么我们就先来求A。而A,又可以简化为:printf("%d",B);那么就先来求B。

B是 printf("%d",i),打印出“123”,即在C语言运行结果中,你最先看到的是123。C语言printf函数的返回值是printf实际控制输出的字符数,那么打印的123 就是3个字符,因此printf("%d",i)返回的就是3,也就是B是3。

那么,A就可以写为printf("%d",printf("%d",3));打印出3,即在运行结果中,你紧接着会看到3。

而打印出的3是1个字符,因此A就是1,那么printf("%d\n",A); 实际上就是printf("%d\n",1); 打印出1。

-返回值

看了你的补充,答案不变,选B

决定权是B,也就是函数原型或者首次声明函数指针时决定的。

如果你给一个其他于此的类型的返回值作为return的参数,编译器在编译过程中会告诉你这个错误(如果能自动转换可能会告诉你警告,不同的编译器处理方式不同)。

答A(绝对错误)的我不知道有没有学过C语言,这个返回值不能当作函数出口,函数原型才是函数出口和入口的说明,如果return能够决定返回类型的话,你想想看,使用if-elseif-else语句或者switch是不是一个函数可以返回多个类型的返回值了?呢这个世界还不乱套了???

例如函数定义为:int

max(int

a,

int

b),这是个函数是获得a,b两个整数值较大的那个,在函数的前面有个int值,说明这个函数返回的是一个整数类型,所以他的返回类型为整型,如果a值比较大就会返回a,这个a的值被称为返回值。

#include

<stdioh>

int

max(int

a,int

b)

{

int

z;

if(a>b)

z=a;

else

z=b;

return(z);

}

void

main()

{

int

a,b,c;

scanf("%d,%d",&a,&b);

c=max(a,b);

printf("max=%d

\n",c);

}

如:在主函数中调用函数int

max(int

a,int

b),如果我们输入1,2,则最后显示2,2为返回值,而函数int

max(int

a,int

b)中的返回类型为整型。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12459014.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存