当我在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)之间有什么区别?
答案 0 :(得分:8)
操作顺序。 a[1]
与*(a+1)
相同。因此,*a[1]
与*(*(a+1))
相同。如果你有*(*a+1)
,那么你实际上在做*(a[0]+1)
。