[問題] 字元陣列賦值的問題

看板C_and_CPP (C/C++)作者 (猴仔)時間14年前 (2011/11/06 00:11), 編輯推噓1(1010)
留言11則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): char test[6]; test = "tiger"; error C2440: '=' : cannot convert from 'const char [6]' to 'char [6]' 看投影片 錯誤是說 因為test是字元陣列 但是 有點不知道為甚麼錯耶 是因為 一定要直接指定嗎 ex. char test[6] = "tiger"; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.15.206

11/06 00:15, , 1F
一種改法是把第一行寫成 char *test;
11/06 00:15, 1F

11/06 00:15, , 2F
另一種改法把第二行寫成 strcpy(test, "tiger");
11/06 00:15, 2F

11/06 00:16, , 3F
兩者的差別請看置底文的十三戒第四條
11/06 00:16, 3F

11/06 00:50, , 4F
恩感謝樓上的回答 但可以請教錯誤的原因嗎?
11/06 00:50, 4F

11/06 00:52, , 5F
錯誤訊息告訴你囉,它們是兩種不同的東西,不能直接 =
11/06 00:52, 5F

11/06 01:20, , 6F
其實不能說他們不同,而是 C 的陣列不能用等號複製
11/06 01:20, 6F

11/06 01:21, , 7F
也是,我講得不太對 XD
11/06 01:21, 7F

11/06 01:37, , 8F
字元陣列要一個一個給值
11/06 01:37, 8F

11/06 01:43, , 9F
初始化可看成編譯器會把字串每個字元依序放入字元陣列
11/06 01:43, 9F

11/06 01:46, , 10F
而常數字串會配給他一個不可寫的記憶體中
11/06 01:46, 10F

11/07 17:00, , 11F
http://codepad.org/ybwMtHxH <--前版主提供的做法
11/07 17:00, 11F
文章代碼(AID): #1EjM0L5b (C_and_CPP)
文章代碼(AID): #1EjM0L5b (C_and_CPP)