我喜欢C中的指针符号而不是数组符号,但在某些情况下无法弄明白。我有以下代码,以及main
/*converts arguemnt to number using atoi()*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
int i, times;
if(argc < 2 || (times=atoi(argv[1])) < 1) {
printf("Usage :%s positive-number\n", argv[0]);
} else {
for(i = 0; i < times; i++) {
puts("Hello");
}
}
return 0;
}
如何用指针表示法表达argv[1]
和argv[0]
?
答案 0 :(得分:5)
argv[i]
相当于*(argv + i)
我真的无法想象为什么你会比后者更喜欢后者。
答案 1 :(得分:2)
只是指出一个有趣的事实:
如果你有和数组(int arr[5]
)或指针,则以下所有内容都是等效的:
*(arr + i);
*(i + arr);
arr[i];
i[arr]; // This last one is rather interesting now isn't it.
答案 2 :(得分:0)
p[n]
相当于:
*(p + n)
答案 3 :(得分:0)
如果你的意思是指针运算,那么argv[1]
就是
*(argv + 1)
但我会选择argv[1]
。