c - 这个指针赋值返回什么地址?

标签 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;
}

这是输出:

ffbff71c
ffbff878

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

最佳答案

垃圾 - 您正在打印出未初始化变量的值。它看起来像您的其他地址,这完全是巧合;初始化 d 以获得有意义的答案。

关于c - 这个指针赋值返回什么地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649718/

相关文章:

将 char* 中的 char 与循环进行比较

c - 如何更新变量代表的地址?

c - 如何在 c 中分配指向数组 [ ] 的指针?

c++ - 类中的动态数组和指针很难找到定义它们的正确方法

c - 使用指针将结构体添加到数组

c - 不使用除法运算符将数字除以 5

java - 导致在文件移动到特定文件时打开批处理文件

c - 共享变量的多处理竞赛

c - libcheck 测试链接失败

c - 用于抓取单个行和单个列的 2D 指针算法