问题是&str[2]
,如果我写str+2
那么它会给出地址及其逻辑但我在哪里使用指针表示法?
我更喜欢写&(*(str+2))
吗?
答案 0 :(得分:4)
您可以使用
&str[2]
或
(str + 2)
这两者都是等价的。
答案 1 :(得分:3)
这是指针算术。因此,当您提到数组str
或&str
时,您将引用数组的基址(例如,在printf
中),即数组中{{1}的第一个元素的地址}。
从此开始,每个增量都会获取数组中的下一个元素。因此str[0]
和str[1]
会给您相同的结果。
另外,如果你有num [] = {24,3}
然后(str + 1)
== num[0]
== *(num + 0)
== *(0 + num)