测试平台是Linux 32位。
我在代码中找到了一个错误,我不知道为什么....
我简化了此代码,然后将其放在这里:
unsigned int aa = 0;
unsigned int array[10000];
unsigned int* ptr = array + 2000;
printf("aa: %d ", aa); // value 1
printf("ptr: %d n", ptr); //value 2
printf("aa+ptr: %d n", aa + ptr); // value 3
编译器是GCC版本4.6.3
看起来很愚蠢,但是我不明白为什么 value3!= value1 value2
有人可以给我一些帮助吗?
谢谢!
在第二个和第三种情况下,您将指针传递给printf,但使用%d作为格式化。您需要%p。
int和指针不可互换。