将指针转换为非指针类型

时间:2015-08-28 16:22:07

标签: c pointers

将指针转换为非指针类型时会发生什么? 例如:

int i = 7;
int *y = &i;

printf("%x %d %x", y, (int)y,7);

编译和运行时的结果是:

29ff00 2752256 7

但实际上是什么结果 - 数字来自哪里?它是一个随机数或与指针所持有的东西有关吗?

它是否具有数学值,例如地址或是由某个标准转换的指针的值?

1 个答案:

答案 0 :(得分:4)

2752256是存储器地址29ff00的十进制值。您可以通过

获得类似的结果
printf("%x %d", y, y);