c - 我对 %p 说明符感到困惑

标签 c pointers

<分区>

  #include <stdio.h>

    int main(void) 
    {

       int i=10;
       printf("%p",i);
       return 0;
    }

输出:-

0xa

%p - 我读过 %p 用于在 printf 中打印指针,但这里 i 是一个整数,而且也没有声明指针,所以“0xa”如何得到输出。

最佳答案

您的代码的行为未定义,因为%p 不是int 类型的适当格式说明符。

编译器可以做任何,包括将您的代码优化为 int main(){}

关于c - 我对 %p 说明符感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44649541/

相关文章:

c++ - 如何获取 UPS 的状态?

c - 映射文件函数路径

c - 我的双链表中的所有内容都变成 0

c - C : warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] 中的函数指针

pointers - TwinCAT 指针指向未定义类型的指针?

ios - NSObject增加指针

c++ - 为什么行>列时数组的内存占用更大

更改 C 中 char 数组的值

当数据复制/扫描/读取到未初始化的指针时崩溃或 "segmentation fault"

c++ - 在这种情况下我会返回什么