查看: 1930|回复: 6
|
C programming疑问
[复制链接]
|
|
请问 char di[10]; 里的di[]是代便什么? |
|
|
|
|
|
|
|
发表于 14-11-2010 05:22 PM
|
显示全部楼层
char di[10]里是代表你declare di里能放十个字
比如,char di[10]=ABCDEFGHIJKLMN;
你printf时,就只能display十个字(ABCDEFGHIJ)而已~其余的不会显示出来。
你试试debug看看结果~
如果有错,请指正哦~谢谢~ |
|
|
|
|
|
|
|
发表于 14-11-2010 05:33 PM
|
显示全部楼层
另一个例子
#include <stdio.h>
int main()
{
char me[20];
printf(“What is your name?”);
scanf(“%s”,&me);
printf(“Darn glad to meet you, %s!\n”,me);
return(0);
}
在me里面,它的storage就只有二十个字,就是能input二十个character而已(包括空格)~ |
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 14-11-2010 08:29 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 14-11-2010 10:16 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 15-11-2010 08:32 PM
|
显示全部楼层
char di[10]里是代表你declare di里能放十个字
比如,char di[10]=ABCDEFGHIJKLMN;
你printf时,就只能 ...
chesley88 发表于 14-11-2010 05:22 PM 
大概是这样。
有点小问题。
一般上string要加上 "", 也就是 char di[10]="ABCDEFGHIJKLMN";
不过这样做也是有问题。 通常compiler会出现error/warning,你试图initialize 15 char (14个characters + 1 null terminator) 进一个 char[10]的array里面。 这是不允许的。
如果是runtime string copy,会造成array overflow (会overwrite char di[] 隔壁的variables), 你的program会有古怪(unexpected behaviour). 这是很危险的。
补充一下,string需要多一个space来做string terminator,就是 '\0'. 一个char di[10],最多能hold 9个characters.比如说:
char di[10] = "123456789";
还有, 楼主,你的贴很没有根据版规来发 虽然你拿到答案了,不过还是希望更改一下,方便以后爬帖的网友。17/11/2010 还不修改我就封帖了。 |
|
|
|
|
|
|
|
发表于 29-12-2010 08:04 PM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|