2 qq 34305902 qq_34305902 于 2016.03.16 13:16 提问

c需要char类型定义数组的问题

#include
#include
#define PRAISE "What a super marvelous name!"
int main(void)
{
char name[40];
printf("What's your name?\n");
scanf("%s",name);
printf("Hello,%s,%s\n",name,PRAISE);
printf("Your name of %d letters occupies %d memory cells.\n",strlen(name),sizeof name);
printf("The phrase of praise has %d letters",strlen(PRAISE));
printf("and occupies %d memory cells.\n",sizeof PRAISE);
return 0;
}

哪里出问题了,远行是说char name[40]这行错误

4个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.16 13:38
已采纳

你中括号是中文格式的,char name[40];所以报错
scanf("%s",name);这个写法也是对的,楼上的说法我晕了。。。

hhv_01
hhv_01   2016.03.16 13:32

貌似输入是这样的,

 scanf("%s",&name);

好久没写C了

lx624909677
lx624909677   Ds   Rxr 2016.03.16 15:33

printf("Your name of %d letters occupies %d memory cells.\n",strlen(name),sizeof name);
最后那里sizeof(name)

qq_32742637
qq_32742637   2016.03.16 13:48

是中括号的问题,scanf("%s",name) 里name 已经是地址了

qq_32742637
qq_32742637 回复chengxilin: 用地址,可是name已经是地址了,你试一下printf("%x",name)打印出来的就是地址。name表示的是你输入字符串的首地址。![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/0.gif)也是新手,希望你能懂
一年多之前 回复
u013474327
u013474327 %s 可以不用&
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!