我有一个示例程序如下:
int testPointer(int * intArray, int * ptr) {
printf("%i\n", intArray);
printf("%i\n", ptr);
printf("%lu\n", &intArray);
printf("%lu\n", &ptr);
return 0;
}
int main() {
int result = testPointer((int *) 0x1, (int *) 0x2);
return 0;
}
典型的输出是:
1
2
3212962484
3212962480
前两行总是相同的,我理解它们是如何产生的。第三行和第四行在每次运行时都会有所不同,但第四行的值总是比第三行的值小四。我如何破译这些值?它们代表什么?为什么最后一行总是比第三行少四?