#define _CRT_SECURE_NO_WARNINGS 1
#include
int max(int x, int y)//创建函数比较大小
{
if (x > y)
return x;
else
return y;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = max(a,b);
printf("%d\n", m);//问题在此处打印时m前面要不要加& ,&的作用是什么,scanf处加的&又是什么作用?????????
return 0;
}
加不加& 跟printf 没有关系,或者加不加 & 跟scanf 都没有关系,
主要你要看给变量加 & 之后的意义是什么
例如 ,int a = 10;
那么 &a 就是a 再内存中的地址
同样的,&a 完全可以传printf,例如
printf("%x", &a) 这句话意思是打印变量 a 的地址,用十六进制数表示
要理解加上& 之后意义。。。
printf不用加&啊,你说的是scanf吧。只有scanf的时候,输入整型、浮点型、字符型等基础变量数据时,需要对变量名加&取地址。printf这些变量值的时候,都是不需要加&的。除非你想输出这个变量的地址
&是取地址符号,因为scanf函数要求参数是变量的地址,而printf只需要变量值
&a表示a变量的地址,
scanf处加的&的作用是将值存在a变量的地址中去。
printf那里加不加&,主要看你想输出的是什么,你想输出变量值,就不加&,你想输出变量地址,就加&
取变量的地址
得到指向变量的指针
printf一般是不需要的,除非想输出地址,Scan f需要,因为那是取地址符,当然,输入如果是字符串也可以不需要
文章:C语言中的printf使用 中也许有你想要的答案,请看下吧