C 中 int main 和 int main(void) 函数的区别

int main表示函数在程序执行结束时返回一些整数,甚至是“0”。“0”代表程序成功执行。

int main 的语法如下 -

int main(){

   ---

   ---

   return 0;

}

intmain(void)表示该函数不接受任何参数。假设,如果我们不在括号中保留 void,则该函数将采用任意数量的参数。

int 的语法main(void)如下 -

int main(void){

   ---

   ---

   return 0;

}

实际上,两者似乎相同,但是 intmain(void)在技术上更好,因为它清楚地提到 main 只能在没有任何参数的情况下调用。

通常,在 C 语言中,如果函数签名不指定任何参数,即可以带任意数量的参数或不带任何参数调用该函数。

让我们采用相同的逻辑来实现这两个函数的代码。唯一的区别是这些函数的语法。

示例 1

下面给出的是main()没有参数的int函数的 C 程序-

#include <stdio.h>

int main(){

   static int a = 10;

   if (a--){

      printf("after decrement a =%d\n", a);

      main(10);

   }

   return 0;

}

输出结果

执行上述程序时,会产生以下结果 -

after decrement a =9

after decrement a =8

after decrement a =7

after decrement a =6

after decrement a =5

after decrement a =4

after decrement a =3

after decrement a =2

after decrement a =1

after decrement a =0

示例 2

下面给出的是相同的程序,但具有 intmain(void)函数 -

#include <stdio.h>

int main(){

   static int a = 10;

   if (a--){

      printf("after decrement a =%d\n", a);

      main(10);

   }

   return 0;

}

输出结果

执行上述程序时,会产生以下结果 -

error

如果我们为 intmain()和 int编写相同的代码,main(void)我们将得到一个错误。发生这种情况是因为 void 表示该函数不带参数。

因此,尝试在上面的示例中删除 main 中的参数 10 并进行编译。因此,在整改后,上述代码将如下 -

示例

#include <stdio.h>

int main(){

   static int a = 10;

   if (a--){

      printf("after decrement a =%d\n", a);

      main();

   }

   return 0;

}

输出结果

执行上述程序时,会产生以下结果 -

after decrement a =9

after decrement a =8

after decrement a =7

after decrement a =6

after decrement a =5

after decrement a =4

after decrement a =3

after decrement a =2

after decrement a =1

after decrement a =0

以上是 C 中 int main 和 int main(void) 函数的区别 的全部内容, 来源链接: utcz.com/z/317285.html

回到顶部