下面的程序运行正常如果给出3个字符,但是一旦给出4个或更多字符-argv [1]变为null。为什么?
#include <stdio.h>
int main(int args, char* argv[]){
char name[5];
printf("Enter yor name:");
fgets(name, 10, stdin); // delibrate
printf("name is: %s \n", name);
printf("argv is %s \n", argv[1]);
printf("Final Output - %s %s\n", argv[1] , name);
}
Invoking by - ./test hello
fgets和数组长度的差异如何以及为什么产生这种行为?
int main(int args, char* argv[])
argv
中是命令行参数(实际上是传递给程序的参数),而不是您接受的输入。