#include<stdio.h>
void main() {
int a[3];
a[0]=1;
a[1]=2;
a[2]=3;
printf("%d", a[2]);
}
它没有显示任何错误或警告。但它没有运行此编程正在编译但未运行。错误在哪里?
#include<stdio.h>
void main() {
int a[3];
a[0]=1;
a[1]=2;
a[2]=3;
printf("%d", a[2]);
}
它没有显示任何错误或警告。但它没有运行此编程正在编译但未运行。错误在哪里?
void main(){
是非标准的。 main()
函数应该返回一个int
。一些IDE /平台检查返回过程的价值。所以这可能是一个问题。 将其更改为:
int main(void){
如果你正在使用C89,那么你也应该从main()
有一个return语句。从C99开始这不是必需的。在C99和更高版本中,如果控件到达主结尾,main()
将隐式返回成功,就像您在main()
函数结束时有:return 0;
一样。
在C89/C90中,您必须在main()
的末尾有return 0;
或return EXIT_SUCCESS;
。否则,它会导致undefined behaviour。但在C99和C11中这不是必需的。除此之外,代码中显然没有其他问题。所以如果你仍然有问题,你需要提供更多关于你的环境/编译器的细节。
你忘了在最后提到'return 0;'。 –
@MichaelWalz:'main'不需要! http://port70.net/~nsz/c/c11/n1570.html#5.1.2.2.3p1 – Olaf
@MichaelWalz自C99以来,不需要从C99显式返回'return'。尽管如此,值得加入。 –
在我的机器上工作得很好。不过,您应该考虑在'printf'语句中添加'\'来强制缓冲区刷新。 – Mureinik
请正确格式化您的代码。 –
是的,它运行,但如此之快,你甚至不能看到它。见[这个](http://stackoverflow.com/questions/1864029/how-do-you-keep-the-console-from-closing-after-the-program-is-done-in-c) –