ano*_*ard 1 c++ arrays pointers
我意识到这是一个令人难以置信的noob问题,但我已经用Google搜索并且似乎无法找到答案(可能是因为我说错了这个问题...如果我有,请随时修复)
所以我有这个代码:
int main(int argc, char* argv[])
{
puts(argv[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我将一个参数传递给我的程序,它工作正常,但如果我没有,那么显然它会失败,因为它试图索引一个不存在的数组元素.
我怎样才能找到字符串数组中的元素数量?
这argc
是为了什么.它包含了元素的数量argv
.尝试编译并运行:
#include <stdio.h>
int main(int argc, char* argv[]) {
int i;
if (argc < 2) {
printf ("No arguments.\n");
} else {
printf ("Arguments:\n");
for (i = 1; i < argc; i++) {
printf (" %d: %s\n", i, argv[i]);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
试运行:
pax> ./prog
No arguments.
pax> ./prog a b c
Arguments:
1: a
2: b
3: c
Run Code Online (Sandbox Code Playgroud)
该argv
数组的范围从argv[0]
(用于调用程序的名称,或"如果它不可用")到argv[argc-1]
.第一个参数实际上是argv[1]
.
C++标准实际上要求它argv[argc]
是0(一个NULL指针),所以你可以argc
完全忽略并直接遍历argv
数组,直到你达到NULL.
归档时间: |
|
查看次数: |
1743 次 |
最近记录: |