【发布时间】:2020-10-03 15:01:35
【问题描述】:
这些指针让我很困惑。我有一个函数作为参数 argc(字符串的参数数量 + 1 是代码的名称)和 char* argv[],如果我理解得很好,它是一个指针数组。现在作为结果,我需要在每一行上打印参数(字符串)和反转的字符串。这意味着如果我将 hello world 作为参数传递,我需要:
hello olleh
world dlrow
我尝试实现部分代码:
int main(int argc, char *argv[])
{
int i = 1;
int j;
while (i < argc)
{
while (argv[i][j] != 0) {
printf("%c", argv[i][j]);
j++;
}
i++;
}
return 0;
}
}
现在我真的迷路了。内循环不起作用。我知道 argv[i] 传递了我所有的参数字符串,但显然我需要输入字符串(字符数组)来交换指针。我也不明白为什么 argv[0] 和 *argv 之间的区别,因为理论上 argv[0] 打印数组的第一个元素,它是一个指针,所以是一个地址,但它不是打印第一个参数.
【问题讨论】:
-
问问自己,
j在内部while循环的开头应该有什么值。