【发布时间】:2013-07-01 11:07:20
【问题描述】:
我在 C 教程中找到的一行代码让我感到困惑。代码如下:
int main(int argc, char *argv[]){
...
char **inputs = argv+1; // This is the confusing line
...
return 0;
}
我无法理解如何将数组分配给这样的指针。如果有人能为我澄清这一点,我会很高兴。先谢谢了!
【问题讨论】:
-
本例中没有数组。
inputs = &argv[1]不那么混乱了吗? -
argv是一个指针数组,argv代表*argv[0]的地址,所以我认为你完全可以这样分配它。 -
但它不是只分配 argv[1] 而不是以 argv[1] 开头的整个 argv[] 吗?
-
不,
argv[1]将等同于*(argv+1),而不等同于argv+1。换句话说,argv+1是指向argv[1]的指针。
标签: c arrays pointers variable-assignment