看板 C_and_CPP 關於我們 聯絡資訊
[c語言] 下列那一個字串的定義有錯誤? (A) char s[]="123"; (B) char s[3]="123"; (C)char s[]="1"; (D) char s[]={'1', '2', '3', '\0'}; ANS:B 請問 char s[3]="123"; 錯在哪? 我在編譯器打了下面指令,沒有發現語法錯誤 char s[3]="123"; printf("%c",s[0]); -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.63.17 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1453470912.A.4B6.html
qscgy4: char s[4]="123", s[0]='1',s[1]='2',s[2]='3',s[4]='\0' 01/22 22:14
qscgy4: 去把 字元、字串的關係搞清楚 01/22 22:14
uranusjr: 題目出得不好, 需要定義什麼是「錯誤」 01/22 22:15
qscgy4: 更正筆誤 s[0]='1',s[1]='2',s[2]='3',s[3]='\0' 01/22 22:15
qscgy4: 另外如果要出出字串應該是 printf("%s", s); 01/22 22:18
uranusjr: 我漏看題目有明確說「字串」, 這樣的話就沒疑問 B 有誤 01/22 22:32
wtmo5566: 感謝各位解答,了解了 01/22 22:34
azureblaze: 我覺得C裡的"字串"是否等同C-string有討論的空間XD 01/23 00:49
longlongint: 看到C/C++每年都有新血加入 感到溫馨 01/23 03:06
ronin728: 樓上的id真猛..C/C++每年都有人問啊,學校教的嘛 01/23 13:14
stupid0319: 每年都有計算機概論課呀 01/23 14:05
stupid0319: 如果編碼者故意不用終止符呢,那這題怎能算 01/24 09:12
stupid0319: 像加密解密或病毒程式什麼的 01/24 09:12
remmurds: 這題出得不好+1 01/24 09:36
qscgy4: "123" 本身的定義就是 1,2,3,\0 四個字元 01/24 12:19
qscgy4: 硬要把他丟入一個 [3] 的陣列會造成溢位吧,本質上就錯了 01/24 12:20