| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1329 人关注过本帖
标题:关于scanf函数于变量地址&之间的问题请教
只看楼主 加入收藏
gvtbs
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2004-9-6
收藏
 问题点数:0 回复次数:15 
关于scanf函数于变量地址&之间的问题请教
我们用scanf 函数的时候在格式符后面就是变量的地址了,书上说这里的每一个变量前面都要代一个& 可是我试了有的时候是会提示出错但有的时候即然什么事都没有而且也会传到dos下提示我们输入数字只不过好像输出的结果是不正确的,但是这明显是不对的啊!!为什么不会报错啊!高手指教啊!!!
搜索更多相关主题的帖子: 变量 scanf 函数 地址 
2004-11-03 16:52
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
能不能把你的代码贴出来?

2004-11-03 16:58
lvlink
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2004-9-20
收藏
得分:0 

一般情况下,不加&是不会提示出错的

不过你的结果肯定是不会对了。因为不加&你输入的东西不能传入变量

2004-11-03 21:05
lvlink
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2004-9-20
收藏
得分:0 

不过也有不需要加&的,例如:

定变量本身就是一个指针(如:int *a;scanf("%d",a))

或者是数组名(如:char a[10];scanf("%s",a))

这时的程序是对的

2004-11-03 21:08
gvtbs
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2004-9-6
收藏
得分:0 
以下是引用lvlink在2004-11-03 21:08:34的发言:

不过也有不需要加&的,例如:

定变量本身就是一个指针(如:int *a;scanf("%d",a))

或者是数组名(如:char a[10];scanf("%s",a))

这时的程序是对的

兄弟这样写是不合法的啊,在C语言中不是有规定不能对数组中的名直写操作,要于FOR语句结合才行啊!

2004-11-04 11:20
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 
晕死,他的第一个不合法,a是个NULL未初始化。但是第二个合法只不过可能发生溢出!!!

我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-11-04 11:25
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

什么&,他只是个标志,告诉你要被输入的地址,是后面的那个变量所存的地址,

只要你知道你想存的地址,用不用&都可以,

例如:

int a;scanf("%d",&a);这个&a就是表示a变量的地址;

我也可以这样写:

int a,b;b=(int)&a;scanf("%d",b);这时b变量的值就是a的地址,你看一下结果不久对了。

而,int a,*b;b=&a;scanf("%d",b);同上!!!


差点把你忘了...
2004-11-04 11:31
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
以下是引用时空之蕊在2004-11-04 11:25:47的发言: 晕死,他的第一个不合法,a是个NULL未初始化。但是第二个合法只不过可能发生溢出!!!

说错了吧,a是未初始化,但他不是NULL。而是一个随机的值,这才是他产生危险的原因,

因为你不知道你所符的这个值被放到了什么地方,而这个地址原来是用做什么的你更不知道。

同时,产生错误的原因,也不应该说叫做“溢出”!!!!


差点把你忘了...
2004-11-04 11:36
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

HE,HE!

&是操作符!^_^


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-11-04 11:39
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

对,是操作符!!


差点把你忘了...
2004-11-04 11:44
快速回复:关于scanf函数于变量地址&之间的问题请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017073 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved