main()在C和C++中定义函数的正确(最有效)方法是什么- int main()或void main()- 为什么?如果int main()那么return 1或return 0?
这个问题有很多重复,包括:
main()函数的有效签名是什么?main()函数void main()和int main()?main()在C++中的签名main()? - 对于C++,确实有一个非常好的答案.main()C语言中的函数样式main()C中的方法类型int main()vs void main()在C中有关:
以下是什么意思:
int main(void) {...}
Run Code Online (Sandbox Code Playgroud)
VS
int main() {...}
Run Code Online (Sandbox Code Playgroud)
?
我认为这int main() {...}意味着main不接收任何参数(来自命令行),但是:
int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)
确实.
但这int main(void) {...} 意味着什么?什么是无效主张?
我看过这里,但这是一个不同的问题.
人们用 void main() /*empty parens ()*/
我被教过要写 void main(void)
任何想法有什么区别?
很多人都熟悉C语言中的hello world程序:
#include <stdio.h>
main ()
{
printf ("hello world");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么有些在main()函数之前,int如下所示:
int main()
Run Code Online (Sandbox Code Playgroud)
另外,我已经看到void输入的内容()如下:
int main(void)
Run Code Online (Sandbox Code Playgroud)
这似乎是额外的打字,但也许这是一个在其他情况下支付红利的最佳做法?
另外,main()如果你要返回一个字符串,为什么会先加一个int?如果有的话,人们会期望:
char main(void)
Run Code Online (Sandbox Code Playgroud)
关于为什么我们在函数结束时返回0也很模糊.
我一直在使用C中的main方法
void main(){ // my code }
Run Code Online (Sandbox Code Playgroud)
它对我来说效果很好.我也知道其他的 int返回类型:
int main(void)
int main()
int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)
但是我找不到任何可以void用作返回类型的资源.每本书都建议返回类型必须int或者省略.然后为什么void main()工作?
这取决于我使用的C版本吗?或者它是否有效,因为我使用的是C++ IDE?请具体回复C而不是C++.
可能的重复:
void main 和 int main 之间的区别?
为什么是
void main() {
//return void
}
Run Code Online (Sandbox Code Playgroud)
坏的?
前几天我输入了这个,有人向我指出这样做是错误的。我很困惑。我已经写了一段时间了,我知道它不是 C++ 标准,但是编译器没有发出任何警告。为什么这是错误的?
也许不是一个非常重要的问题,但只是从c开始.为什么这不能正确编译?
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i = 15;
char word[100];
itoa (i,word,10);
printf("After conversion, int i = %d, char word = %s", i, word);
}
Run Code Online (Sandbox Code Playgroud)
我一直收到错误消息
Undefined symbols:
"_itoa", referenced from:
_main in ccubsVbJ.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud) 可能重复:
void main和int main之间的区别?
好吧,所以我正在使用流血的编译器,我应该注意的第一件事是我使用2001版C++作为绝对的初学者,自2001年以来C++是否有任何改变会影响本书的有效性?我问,因为我知道php有php5,现在是php6,但我还没有看到任何C++ 03.
现在我之所以这么说,在它使用的代码中,
void main (void)
Run Code Online (Sandbox Code Playgroud)
为什么我要一个论证无效?这是做什么的.
但是当我void main (void)在我的编译器中运行时,它说main必须在它之前有一个"int".所以我不能有"无效"主(无效);
此外,一旦代码运行,只要没有"cin",程序就会关闭.这是正常的行为,除了在我的程序结束时制作一个cin之外,还有更好的方法来阻止它吗?
我一直在寻找各种论坛来尝试理解这个问题.我无法完全理解这个问题以及为什么我找不到解决方案的原因是因为我对C++很新,我不理解错误信息.
这是我在C++中的代码,它从排列或组合公式中找到可能性的数量.每次我尝试编译并运行时,都会收到以下消息:
Combinations_Permutations.exe中0x6a8613af(msvcr100d.dll)的第一次机会异常:0xC0000005:访问冲突读取位置0x00000005.Combinations_Permutations.exe中0x6a8613af(msvcr100d.dll)的未处理异常:0xC0000005:访问冲突读取位置0x00000005.
我在许多其他论坛上了解到"访问冲突读取位置0x00 ......"肯定可以指示空指针.但我无法看到我遇到这样一个空问题.也许我的变量是全局访问的,它们不是YET初始化的?这是我的代码,我已经有一段时间了...就像我说我很新.所以请告诉我我的错误.谢谢.
我的代码:
#include <iostream>
#include "conio.h";
using namespace std;
int run_combination(int n, int r);
int run_permutation(int n, int r);
int solve_factorial(int f);
int f_value = 1; //factorial value used recursively
int n_input, r_input;
char choice;
char order;
void main(){
//if user types choice as 'q', while loop ends
while(choice != 'q'){
printf("How many values? (1-9) \n");
printf("User: ");
cin >> n_input;//user input for variable n
printf("n_input: %i", n_input);
printf("\nHow many will be chosen at a time …Run Code Online (Sandbox Code Playgroud) 我已经编写并编译了以下代码:
void main()
{
printf("%d", -10 & 5);
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它输出值4。为什么该程序的输出为4?
c bit-manipulation operators bitwise-operators negative-number