
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)中的返回类型为整型。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)