显然&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/

10-10 13:16