返回此指针赋值的地址是什么?

0 c pointers

前几天我正在玩指针,并提出以下代码,我明确地将int变量转换为int *并打印出明确转换变量的地址

#include <stdio.h>

int main (void)
{
    int d;
    int *p1, *p2;

    printf("%p\n", p1 = &d);
    printf("%p\n", p2 = (int *) d);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

ffbff71c
ffbff878
Run Code Online (Sandbox Code Playgroud)

我的问题是第二个地址是什么,那里包含的内容是什么?

Car*_*rum 5

垃圾 - 您打印出未初始化变量的值.它看起来像你的另一个地址,完全是巧合; 初始化d以获得有意义的答案.

  • 即使用`d`初始化,我也不认为你能得到有意义的答案...... (2认同)
  • @sunqingyao - 我只是意味着它将显而易见打印出来的值,因为它将匹配`d`的初始化. (2认同)