给出以下定义,int a[10],若有a[0]+1,表达式中1的单位应当是2字节,为什么啊?

2025-04-15 03:52:19
推荐回答(1个)
回答1:

这个与系统有关.

这里的a[0]+1实际上相当于&a[0][0]+1,即计算与a[0][0]元素相邻的下一个int类型元素(因为数组是int类型)的地址,即a[0][1]的地址,如果在过去的16位系统上,一个int类型的变量占用16位,也就是两个字节,所以a[0]+1中的+1就向后移动了两个字节,如果是32位系统,那么一个int类型变量就是占32位,也就是4字节,所以这里的+1实际上就移动了4字节.