c语言 - 这段代码有什么问题,我不能一起添加指针和无符号值吗?



测试平台是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和指针不可互换。

最新更新