我的代码有什么问题吗?
#include<stdio.h>
int main(void){
int a;
int *p;
p=&a;
printf("%d\n",p);
}
最佳答案
printf()
中的
%d
格式说明符需要一个 int
参数。在您的代码中,您传递了一个int *
。您需要:
- 如果您想打印指针指向的内存位置中存储的值,则取消引用指针以获取
int
类型。 - 如果要打印指针,请使用
%p
格式说明符并将参数转换为void *
。
它调用undefined behavior将错误类型的参数传递给任何格式说明符。
关于c - (1)在函数 ‘main’ :(2) warning: format ‘%d’ expects argument of type ‘int’ , 中,但参数 2 的类型为 ‘int *’ [-Wformat],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799739/