問題詳情

26 考慮下列 C 語言結構變數(Structure variable)的宣告:

下列何者設定句錯誤?
(A) bill.id = -999;
(B) bill.name= 'A';
(C) bill.age = 300;
(D) bill.gender = '2';

參考答案

答案:B
難度:非常困難0
書單:沒有書單,新增

用户評論

老張】評論

B 會有 assignment to expression with array type error.原因是1. array 不可以直接給 array 賦值。2. pointer 不可以直接給 array 賦值。看一下範例比較容易了解:char a[] = {'h', 'e', 'l', 'l', 'o'};char b[5];char* p = NULL;// 錯誤狀況char c[5] = a; // array 不可以直接給 array 賦值。char d[5] = p; // 2. pointer 不可以直接給 array 賦值。// 正確狀況*p = a; // 把 array 第一個地址 assign 給 point strcpy(b,a); //使用標準字串拷貝函數而結構體出現這種問題通常用 strcpy 或 stmcpy 來處理,如果選項B改成:strcpy(bill.name, "A");就可以過關了。