为什么 argc 与 strlen(argv[i]) 不同?
Why isn't argc same as strlen(argv[i])?
当我使用 strlen(argv[i]) 而不是 argc 时,为什么我的代码会出现分段错误?
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main(int argc , char* argv[])
{
for(int i=0;i<strlen(argv[i]);i++)
printf("%s\n",argv[i]);
return 0;
}
输出是
./a.out
hello
world
Segmentation fault (core dumped)
使用 argc:
int main(int argc , char* argv[])
{
for(int i = 0; i < argc; i++)
printf("%s\n", argv[i]);
return 0;
}
有关详细信息,请参阅此问题的答案:
What does int argc, char *argv[] mean?
当我使用 strlen(argv[i]) 而不是 argc 时,为什么我的代码会出现分段错误?
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main(int argc , char* argv[])
{
for(int i=0;i<strlen(argv[i]);i++)
printf("%s\n",argv[i]);
return 0;
}
输出是
./a.out
hello
world
Segmentation fault (core dumped)
使用 argc:
int main(int argc , char* argv[])
{
for(int i = 0; i < argc; i++)
printf("%s\n", argv[i]);
return 0;
}
有关详细信息,请参阅此问题的答案: What does int argc, char *argv[] mean?