[問題] 請問struct內字元陣列給初始值的問題

看板C_and_CPP作者 (陽光棕梠)時間10年前 (2014/04/24 03:37), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 想請問在自訂struct內的字元陣列給初始值的問題 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) typedef struct node{ char name[20]; int grade; struct node *next; }NODE; int main(int argc, char *argv[]) { NODE a; *(a).name= "James"; a.name= "James"; a.grade= 100; system("pause"); return 0; } 補充說明(Supplement): 想請問一下 1. 為何a.grade= 100; 這樣的宣告是正確,但是a.name= "James"; 這樣的宣告是錯誤? 為什麼struct裡的字元陣列無法直接把字串給予? 2. *(a).name= "James"; 這樣的宣告會出現警告? 3. 對於struct內的字元陣列該如何給初始值才是正確? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.3.22 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1398281857.A.04D.html

04/24 03:41, , 1F
1. 字元陣列宣告好之後也不能用等於賦值 跟struct無關
04/24 03:41, 1F

04/24 03:42, , 2F
2. 因為a不是指標
04/24 03:42, 2F

04/24 03:43, , 3F
3. 同1跟struct無關,可以用strcpy複製進去
04/24 03:43, 3F

04/24 03:48, , 4F
NODE a = { "James", 100, };
04/24 03:48, 4F

04/24 22:50, , 5F
感謝解答!
04/24 22:50, 5F
文章代碼(AID): #1JM1Q11D (C_and_CPP)