显然&a[i]
和a+i
都返回int*
。问题是它们是否以相同的方式执行,因为&a[i]
中有两个运算符,但是a+i
中只有一个运算符?
最佳答案
在C中,它们是相同的。 C标准将a[i]
定义为与*(a + i)
相同,因此&a[i]
只是&*(a + i)
,即a + i
。 (这令人惊讶的结果是,您可以轻松编写i[a]
。)
这里的操作员数量没有实际意义。
关于c - &a [i]和a + i之间有什么区别,其中a是int *?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49833305/