Для версии C ++ попробуйте это:
int *a = (int *)17;
printf("%d", a + 3);
И да, ваше объяснение верное ...
Это называется арифметикой указателей и работает так, как вы сказали.Однако обратите внимание, что код, который вы используете здесь, где вы присваиваете постоянное значение указателю на int
, редко делается в реальной жизни.Значение указателя обычно исходит из некоторого рода функций выделения памяти, например, malloc
в C или new
в C ++ (хотя new
не является функцией).