将指针转换为非指针类型时会发生什么? 例如:
int i = 7;
int *y = &i;
printf("%x %d %x", y, (int)y,7);
编译和运行时的结果是:
29ff00 2752256 7
但实际上是什么结果 - 数字来自哪里?它是一个随机数或与指针所持有的东西有关吗?
它是否具有数学值,例如地址或是由某个标准转换的指针的值?
答案 0 :(得分:4)
2752256是存储器地址29ff00的十进制值。您可以通过
获得类似的结果printf("%x %d", y, y);