(1)在函数'main'中:( 2)警告:格式'%d'需要类型'int'的参数,但参数2的类型'int *'[-Wformat]

时间:2016-11-25 07:28:04

标签: c pointers printf

我的代码出了什么问题?

  #include<stdio.h>
  int main(void){
        int a;
        int *p;
        p=&a;
        printf("%d\n",p);
   }

1 个答案:

答案 0 :(得分:2)

%d中的

printf()格式说明符需要int个参数。在您的代码中,您传递的是int *。你需要

  • 取消引用指针以获取int类型,如果要打印存储在指针所指向的内存位置的值。
  • 如果要打印指针,请使用%p格式说明符并将参数强制转换为void *

它调用undefined behavior将错误类型的参数传递给任何格式说明符。