55问答网
所有问题
printf和scanf函数为什么一个要取地址符一个不用呢?
如题所述
举报该问题
推荐答案 2013-11-25
你用scanf输入的时候,是要在函数内对变量值进行修改的。
而printf输出的时候,只用到变量的值,不必在函数内改变变量的值。
如果是普通的函数参数传递,比如传递a,变量接收的方式是在函数内另外建立一个变量,假设是b,然后把a的值传递给b就可以了。这样如果对b的值进行修改,不影响原来的a。
传地址则可以通过操作改变实参的值,比如把a的地址p1传递到函数中,函数中p2接收到了a的地址,因为p2指向的是a的地址,所以对p2地址指向的内容修改,就对原来的变量a修改了
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/IRQGRLGGc4ce8GceQcL.html
其他回答
第1个回答 2013-11-25
因为scanf的取得一个字符,然后把这个字符存放到某一内存区域,所以要为它(字符)分配存储空间。
printf的输出一个字符。
输出的时候系统根据变量名(外部标识符)在内存中找到与之相匹配的字符进行输出操作。所以不用取地址符。
楼主不明白请追问。
本回答被网友采纳
第2个回答 推荐于2016-06-18
因为scanf的取得一个字符,然后把这个字符存放到某一内存区域,所以要为它(字符)分配存储空间。
printf的输出一个字符。
输出的时候系统根据变量名(外部
标识符
)在内存中找到与之相匹配的字符进行输出操作。所以不用取地址符。
第3个回答 2013-11-25
printf是输出,不用...因为你调用它时已经把要输出的数据用形参的方式传送给它了
scanf是输入,形参可以说是局变量,函数执行完后就没了,传了地址让它保存到指定地址,这样数据就可保存了!
本回答被网友采纳
第4个回答 2013-11-25
因为scanf函数要返回数值给变量,而printf函数不用返回值给变量
相似回答
printf和scanf函数为什么一个要取地址符一个不用呢?
答:
你用scanf输入的时候,是要在函数内对变量值进行修改的
。而printf输出的时候,只用到变量的值,不必在函数内改变变量的值。如果是普通的函数参数传递,比如传递a,变量接收的方式是在函数内另外建立一个变量,假设是b,然后把a的值传递给b就可以了。这样如果对b的值进行修改,不影响原来的a。传地址则...
printf和scanf函数为什么一个要取地址符一个不用呢?
答:
printf是输出,不用...因为你调用它时已经把要输出的数据用形参的方式传送给它了scanf是输入
,形参可以说是局变量,函数执行完后就没了,传了地址让它保存到指定地址,这样数据就可保存了!
...
为何
有时
用取地址符
而有时
不用
,哪位大侠指点迷津啊
答:
每个变量定义后在内存上都要一个地,而a代表的是变量值,&a代表的是
地址
名。比如int a=1;
printf
("%d",a);这个输出语句输出的是a的值1,而printf("%x",&a);输出的是a在内存的地址,一个16进制的数
printf和scanf
关于取地址的区别,scanf是
要取地址
的,所以这两者分别输入...
答:
这个
地址
表示从哪个字节开始向终端输出一个字符串,显然也需要把同样的地址写在
printf函数
里。实际上,对于 char str[20];
scanf
("%s",str);printf("%s",str);也是这样用的。只不过你的问题中的字符数组是一个结构体的成员,所以要找到它需要表示成 thr[1].name而已。
为何
在C语言中的
scanf
()中要用到
取地址符
,而
printf
()中却
不用?
答:
scanf意思是从键盘输入数据,从键盘得到字符,放到某个变量里,当然要它的地址了;
printf
意思是输入某个变量的内容,只要知道变量名就行了。我个人认为是不是为了符合人的思考习惯。另外,c语言开发时就这么规定的,没有太多的
为什么
,当初人家发明c语言时说
scanf需要
加
地址符
,那咱们用的时候就得加,当初...
大家正在搜
printf函数和scanf函数
scanf函数是一个标准输入函数
什么时候用scanf函数
printf和scanf的用法
c语言中printf和scanf
printf和scanf的返回值
printf和scanf的缺点
c语言怎么用scanf输入字符串
printf与scanf
相关问题
printf和scanf函数为什么一个要取地址符一个不用呢?
为何在C语言中的scanf()中要用到取地址符,而print...
c语言中为什么printf输出变量值的时候不要加地址符&,而...
c语言 scanf();为什么要用取地址符
为什么C语言Scanf函数对字符串不要加 取地址运算符&
C语言中 用scanf函数输入字符串数组,取地址符&是不用输...
这两个c语言编程,为什么一个调用函数需要取地址符号,一个不用
scanf为什么有时用取地址符,有时不用