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

作者: hbzncu (陽光棕梠)   2014-04-24 03:37:35
開發平台(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內的字元陣列該如何給初始值才是正確?
作者: prismwu   2014-04-24 03:41:00
1. 字元陣列宣告好之後也不能用等於賦值 跟struct無關2. 因為a不是指標3. 同1跟struct無關,可以用strcpy複製進去
作者: yvb   2014-04-24 03:48:00
NODE a = { "James", 100, };
作者: hbzncu (陽光棕梠)   2014-04-24 22:50:00
感謝解答!

Links booklink

Contact Us: admin [ a t ] ucptt.com