C语言中,*(a[1])和*(*a+1)有什么区别?

3

在使用gdb调试时,它们似乎是不同的。

 (gdb) p order[1]
 $16 = (struct order_s *) 0x746440
 (gdb) p *order+1
 $17 = (struct order_s *) 0x746430
 (gdb) p *order
 $18 = (struct order_s *) 0x746420

在C语言中,*a[1]和*(*a+1)有什么区别?
1个回答

8

运算顺序。 a[1]*(a+1) 是等同的。因此,*a[1] 等同于 *(*(a+1))。如果你使用 *(*a+1),那么实际上你是在执行 *(a[0]+1)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接