永发信息网

为什么 printf 函数需要变量名,而 scanf 函数需要变量地址?可否使用变量名?分析一下 scanf 函数大致的处理过程。

答案:2  悬赏:10  手机版
解决时间 2021-06-09 02:56
为什么 printf 函数需要变量名,而 scanf 函数需要变量地址?可否使用变量名?分析一下 scanf 函数大致的处理过程。
最佳答案

因为printf函数是值传递,先给变量赋初值,然后才能输出变量的值。而scanf函数是地址传递,传递的是变量的地址,而不是变量的具体数值。例如有如下程序:


# include<stdio.h>


void main()


{ int num1,num2,Max,Min;


printf("Input frist number: ");


scanf("%d",&num1); //地址传递//


printf("Input second number: ");


scanf ("%d",&num2);


printf("num1=%d,num2=%d\n",num1.num2);//输出变量num1和num2的值//


if (num1>num2)


Max=num1;,Min=num2;


else


Max=num2,Min=num1;


}


如果scanf函数要是用变量名作参数,那需要用指针改写,请自己尝试,笔者不再累赘。

全部回答
因为你需要把变量的地址告诉scanf,scanf才知道把读到的值存到什么地方去! 也就是说scanf必须操作实参本身! 如果你传递的只是变量 int a = 0; scanf( "%d", a ); // scanf会认为你要把一个int存入0x00000000这个地址,显然要出问题 printf由于不需要操作实参本身,所以直接传递变量值的一份拷贝过去就行了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
冰封王座战役对话是英文的怎么办?
英语专业四级、八级考试具体时间?
First love is the first time the heart bea
石首市荆州湖南津市肉杂粉面馆地址是什么,有
笔记本卡怎么升级,笔记本很卡 应该怎么升级硬
癔症什么意思,癔症蛋怎么改成别的字
恢复好友后对方qq会有什么反映?
频次年缴是什么意思,保费已交期数什么意思
阳江哪里有变色杯卖?
舞阳县漯河舞阳县革命老区纪念馆地址在什么地
世界最高的山是?急!
谁知道酒渣鼻一般都长在什么样的身上?
是什么是一个人的生活更美好
以前在“好友日记”能看到的日记看不到了?
用怎么.呢造个反问句
推荐资讯
艾弗森,离开灰熊以后还在NBA打吗?
坤是哪个方位
宽带光纤是什么,中国移动光纤宽带什么意思?
表示女生有侠气的诗句,关于主见的句子
我想知道广西中医学院口腔专业今年刚出去实习
dnf中200点卷能买到什么永久东西
睡觉老做梦怎样才能不作梦
目前PSP2000正常价格是多少
中国古代女子的平均体重,身高怎么样呢?
错与对的差别在哪?
被误解,解释过,徒劳,怎么办.......
99可以拆成哪两个两位数
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?