繁体   English   中英

指针指针的算术运算(* argv [])?

[英]Pointer arithmetic on pointer of pointer (*argv[])?

我知道foo[bar]等于*(foo + bar) ,但是*foo[bar]等于什么,比如访问*argv[2] 我有点困惑理解这一点,我假设可能像*(*(foo) + bar)但我不确定..

如果这是一个简单的答案,我道歉。

*a[b]由于C和C ++优先规则, *a[b]相当于*(a[b]) 所以*a[b]相当于**(a+b)

如果以下是等效的,

foo[bar]
*(foo + bar)

那么以下也是等价的:

*foo[bar]
**(foo + bar)

这是我的理解,它是**(foo + bar)

为什么?

*foo[bar]分解为*和foo[bar]因为*是在foo[bar]被取消引用后完成的。

你已经回答了foo[bar] == *(foo + bar)

现在添加另一个*,你有*(*(foo + bar))

这也简化为**(foo + bar)

*foo[bar]是指针引用到foo[bar]

假设char *argv[]的声明, argv[2]引用argv数组的第三个元素,它是一个char **argv[2]取消引用这个指针,为你提供该字符串中的第一个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM