执行后,结果非常奇怪:
#include <stdio.h>
int main(){
int a,b;
printf("enter two numbers :");
scanf("%d%d",&a,&b);
if(a>b){
printf("maximum number is %d",&a);
}
else{
printf("maximum number is %d",&b);
}
return 0;
}
在控制台中输入两个数字结果为:
maximum number is 2686696
2686696非常奇怪对我来说,如果我输入两个数字,如5,3必须显示我5但显示2686696 !!!
任何人都可以指导我吗?
答案 0 :(得分:5)
您正在尝试打印int
的地址而不是其值。这样做:
if(a>b){
printf("maximum number is %d",a);
}
else{
printf("maximum number is %d",b);
}
&
运算符返回a
或b
的地址。
答案 1 :(得分:0)
从&
删除printf
以打印该值,现在您正在打印该地址。应该是:
printf("maximum number is %d",a);
答案 2 :(得分:0)
&amp;在printf中打印变量的地址而不是值。
要打印值,请使用:
if(a>b){
printf("maximum number is %d",a);
}
else{
printf("maximum number is %d",b);
}
答案 3 :(得分:0)
如果您有兴趣打印数字&
和printf
,请从a
的参数中移除b
运算符,否则请将格式说明符%d
更改为{ {1}}如果您要打印%p
和a
的地址。
b