請問char array (c語言)

看板Programming作者時間18年前 (2007/12/20 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
請問以下的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 修改這篇文章
文章代碼(AID): #17QLnV00 (Programming)
文章代碼(AID): #17QLnV00 (Programming)