2014-12-11 57 views
-3

argv保存双指针的命令行参数。我需要将它传递给一个接受单个指针作为参数的函数。 我该怎么做?只需要注释它?将双指针转换为单指针,反之亦然

+4

取决于函数的参数意味着什么,但演员绝对是错误的举动。 – user2357112 2014-12-11 03:20:19

+0

'argv'是一个参数数组。你是否需要将所有参数作为单个字符串传递? – justanothercoder 2014-12-11 03:20:30

+0

如何使用argv [i]作为指向“ith”参数的单个指针? – rcgldr 2014-12-11 03:24:09

回答

2

argv中的双指针是指向指针数组的指针。该数组内的每个指针表示一个以null结尾的C字符串。

如果另一个函数需要单个指针,它可能期望一个以null结尾的C字符串,而不是整个数组。这就是铸造不会产生预期结果的原因:你需要选择你想要传递的参数,然后通过argv[index],这将是一个单一的指针。

以上,index代表您传递给函数的参数的位置。它必须介于0和0,包括argc,不包括在内。

+0

它不会高效...对不对? – 2014-12-11 07:51:13

+0

@XavierGeoffrey你是什么意思? 'argv [index]'和它的效率一样高效 - 在大多数现代平台上使用单个CPU指令。 – dasblinkenlight 2014-12-11 10:25:50

+0

我想我需要通过argv来提取数据,这就是为什么......但是,谢谢我认为我可以修复它。 – 2014-12-11 19:34:01