刚刚看到这个程序,不知为何红色语句替换对程序没影响?
#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编辑过]
----------------解决方案--------------------------------------------------------
不可能呀!!我在编小玩意时,没打取值符号,就会出错
----------------解决方案--------------------------------------------------------
我在VC++6中试过
----------------解决方案--------------------------------------------------------
我觉得应该没有&的,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不都是指向字符的指针吗
----------------解决方案--------------------------------------------------------