我甚至不知道发生了什么,我刚刚开始了一个新项目,并设置了一只基本的猫只是为了确保一切正常,而且发生了这种情况。
#include "stdlib.h"
#include "stdio.h"
int main(int argc, char *argv) {
printf("%s",argv[0]);
return 0;
}
就是这样,我重新安装了gcc,g ++和两个multilibs。我真的不知道该怎么想。
答案 0 :(得分:7)
声明的argv
类型错误。 main
的签名应该是以下之一:
int main(int argc, char **argv);
int main(int argc, char *argv[]); // Functionally equivalent to above
请注意,main
也可以void
忽略参数,但这不是您在这里寻找的。 p>
我个人更喜欢上面列出的第二种形式,因为我发现它更直观(char*
的数组)与第一种形式(指向char*
的指针),但由于数组只是C中的指针算术,会做的。
答案 1 :(得分:5)
main
函数的第二个参数通常定义为char **argv
或char *argv[]
;两种方式都是正确的。
包含句子也是错误的。使用#include "file.h"
时,它会在当前文件夹中查看file.h
,但如果您要包含C标准库中的头文件,则该文件应为#include <file.h>
。