第1个回答 2013-02-24
因为p = p+2之前做了p--操作,使得P又指回了0x003E2378
而一个short类型的长度又是2,因此p = p+2是使得P后移两个short,则移动的长度为4,
所以p = p+2指向的地址为0x003E2378+0x00000004=0x003E237c
第2个回答 2013-02-24
指针运算加的是偏移量不是值,这也是为什么指针要定义类型的原因。。。。一个short int类型指针+1,意思是指向下一个short int,而不是地址+1,因为一个short int两个字节,所以地址是+2*2=4;如果你的类型长度是100,比如某struct长度是100,那该类型指针+1,是地址+100本回答被提问者采纳
第3个回答 2013-02-24
他看似加2,实际上加的是 2倍的 那个数据类型的长度。看来你用的环境下,short int 是2字节。int一般是4字节。
你看p++不就是 p+1吗?p+1 得 37A,再加1, 不就是37C喽。
第4个回答 2013-02-24
这里的2,不是简单的数值的2,是两个sizeof(usi)的长度。也就是说,加的2其实是4