看板 C_and_CPP 關於我們 聯絡資訊
請問為何下面這段程式 http://codepad.org/wU1xGkjA 第22行 gets((ptr+i)->name); 第24行 scanf("%d",&(ptr+i)->score); scanf函數後面有加取址運算元,而gets卻不加呢? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.1.29
whitefur:因為name的type是char 而score的type是int 09/28 16:16
whitefur: 的array 09/28 16:17
Fan383:所以是因為型態才加取址的嗎? 感覺怪怪的耶 09/28 16:22
LPH66:你要知道字串其實是字元陣列 所以所有要給一個字串的地方 09/28 16:52
BlazarArc:http://0rz.tw/waHUq 看一下 scanf() 的使用方式吧 09/28 16:53
LPH66:都是給陣列 相對的其他東西就得要告訴函數這個變數要寫去哪 09/28 16:53
LPH66:因此才會有「除了字串之外都要加 &」這個記法 09/28 16:53
Fan383:非常感謝LPH,我懂了 09/28 16:55
Fan383:可是為何24行的取址不是該寫成&((ptr+i)->score)才對嗎 09/28 16:57
BlazarArc:有加括號比較易懂,沒使用是因為 -> 優先度比 & 高 09/28 16:59
BlazarArc:關鍵字 Operator Precedence 09/28 17:00
Fan383:原來如此,謝謝教導 09/28 17:04