It seems that they’re different when I debug them in 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
What’s the difference between *a[1] and *(*a+1) in C?
Order of operations.
a[1]is the same as*(a+1). So,*a[1]is the same as*(*(a+1)). If you have*(*a+1)then you are actually doing*(a[0]+1).