Вот две инструкции:Почему эти две инструкции различаются по размеру?
int p = 0;
int size_1 = (int*)(&p+1)-(int*)&p;
int size_2 = (char*)(&p+1)-(char*)&p;
Я обнаружил, что size_1
является 1
и size_2
является 4
. Мне было интересно, почему они меняются таким образом.
Расстояние между началом и концом int равно 1 int или 4 символа (в вашей системе) –
Я не понимаю нижний предел по этому вопросу. Хотя это вопрос начального уровня, мне было интересно узнать, есть ли другие ответы, кроме тех, которые уже приведены здесь. – legen
Разделите 'size_2' на' sizeof (int) ', и результат будет равен' size_1'. – Peter