当前位置: 代码迷 >> C语言 >> [求助]"scanf("%s",&str);"等于"scanf(" ...
  详细解决方案

[求助]"scanf("%s",&str);"等于"scanf(" ...

热度:800   发布时间:2007-07-11 15:19:04.0
[求助]"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  

----------------解决方案--------------------------------------------------------

不可能呀!!我在编小玩意时,没打取值符号,就会出错


----------------解决方案--------------------------------------------------------

我在VC++6中试过


----------------解决方案--------------------------------------------------------
我觉得应该没有&amp;的,str就是地址啊
----------------解决方案--------------------------------------------------------

没错应该是没有&的。
看了就知道了,这里就体现了char [] 和char * 的区别了

程序代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char str[10];//你换成char *str=(char*)malloc(10);再看
printf(\"&str=%x\n\",&str);
printf(\"str=%x\n\",str);
printf(\"&str[0]=%x\n\",&str[0]);
system(\"pause\");
}


----------------解决方案--------------------------------------------------------
嗯,两者确实不同……
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
我觉得我已经说的很清楚了
----------------解决方案--------------------------------------------------------
两种STR不都是指向字符的指针吗
----------------解决方案--------------------------------------------------------
  相关解决方案