| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1893 人关注过本帖
标题:[求助]"scanf("%s",&str);"等于"scanf(" ...
取消只看楼主 加入收藏
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
 问题点数:0 回复次数:9 
[求助]"scanf("%s",&str);"等于"scanf("%s",str);" ?大吼一声,高人呢?!

刚刚看到这个程序,不知为何红色语句替换对程序没影响?
#include<stdio.h>
#include<string.h>
#include<conio.h>

int main()
{
char str[10];
int i=0;

memset(str,0,sizeof(str));
printf("Enter a number:");
scanf("%s",&str); //scanf("%s",str);
for(int j=0;j<strlen(str);j++)
{
printf("%c\n",str[j]);
}
getch();
return 0;
}

[此贴子已经被作者于2007-7-11 18:33:08编辑过]

搜索更多相关主题的帖子: str scanf 高人 int 
2007-07-11 15:19
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 

我在VC++6中试过


2007-07-11 15:35
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 
我觉得应该没有&amp;的,str就是地址啊

2007-07-11 15:36
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 
嗯,两者确实不同……

2007-07-11 15:55
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 

但是
char str[10];和char *str=(char*)malloc(10);
定义的str究竟是怎么不同的呢


2007-07-11 16:00
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 

含泪扶一把……
就看着它沉下去,再无人过问……


2007-07-11 19:42
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 
两种STR不都是指向字符的指针吗

2007-07-11 19:59
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 

为什么第一种str==&str而后者str!=&str


2007-07-11 20:02
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 

难道就只归结于规定而不问深层原因?


2007-07-11 20:04
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 

明白了,字符数组名str代表数组首地址,和字符指针str的内容相同,但是两者毕竟有区别,字符指针是一个占有4个字节的变量,所以它的存放地址当然不等于它的指向地址,需要取得其指向内容用的就是str,而数组名并不是变量,可能只是类似于符号常量,并无实际地址,这样str作为数组名时&str就没有意义,或许&str只是一种容错处理


2007-07-11 21:17
快速回复:[求助]"scanf("%s",&str);"等于"scanf(" ...
数据加载中...
 
   



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

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