看板Programming
标 题请问char array (c语言)
发信站无名小站 (Wed Dec 19 23:52:22 2007)
转信站ptt!ctu-reader!ctu-peer!news.nctu!csnews.cs.nctu!news.cs.nctu!wretch
请问以下的C语言:
#include <dos.h>
#include <stdlib.h>
main()
{
char s1[6]="abcde1";
int i=0;
for (i=0;i<=6;i++)
{
printf("s1[%d]=%c\n",i,s1);
}
printf("s1=%s \n",s1);
system("PAUSE");
return 0;
}
执行之後得到的结果如下:
s1[0]=a
s1[1]=b
s1[2]=c
s1[3]=d
s1[4]=e
s1[5]=1
s1[6]=F
s1=abcde1F1????"
请按任意键继续 . . .
为什麽
printf("s1=%s \n",s1);
不能得到abcde1
而是印出一堆奇怪的文字呢?
我知道阵列最後一个位置不能用
只是在这里希望证明 资料没有
储存在最後一个位置
所以
我想再确认一下
char s1[6]="abcde1";
是不是代表他有六个问题
储存的资料由s1[0]到s1[5]?
因为我的for回圈可以看到这样的内容显示
只是
为何我想要把s1 printf 除了abcde1 还会跑出其他资料?
因为我只是想要把s1这一个阵列输出
为何会有其他字出现?
还是
s1[6]只能存5个,最後一个是存结束符号?
那再请问..
这是c语言阵列的特性吗?
这是我不懂的地方
谢谢
--
参考一下..
http://members.lycos.co.uk/jiannrong/sell.htm
--
夫兵者不祥之器物或恶之故有道者不处君子居则贵左用兵则贵右兵者不祥之器非君子
之器不得已而用之恬淡为上胜而不美而美之者是乐杀人夫乐杀人者则不可得志於天下
矣吉事尚左凶事尚右偏将军居左上将军居右言以丧礼处之杀人之众以哀悲泣之战胜以
丧礼处之道常无名朴虽小天下莫能臣侯王若能守之万物将自宾天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦将知止知止可以不 176-139.ihp.sinica.edu.tw海
jiannrong 在
07/12/19 23:52:22 从
140.109.139.176 修改这篇文章