關于struct的定義
在struct里定義char 類型必須用數組形式嗎??
char name[20]能不能改成char name?
不能的話存在什么錯誤?
為什么下面定義的int類型的atk和price沒有寫成atk[20]和price[20]?
在struct里定義char 類型必須用數組形式嗎??
char name[20]能不能改成char name?
不能的話存在什么錯誤?
為什么下面定義的int類型的atk和price沒有寫成atk[20]和price[20]?
2017-03-24
舉報
2017-05-17
char類型的數據是一個字符型數據 比如char name='a'; 而人的名字是多個字符組成,所以需要用一維數組進行存放,而后面的atk指的是攻擊力 而int型數據范圍一般是0-2^32,所以只需要一個int就ok了 例如 ak-74的攻擊力為500 我們可以寫為 atk=500; 價格同理 你說的如果 后面代表攻擊力的與價格的變成一個數組 那么它們可以存放多個武器的價格與攻擊力, 與需求不符 所以沒有用數組。。你要自己練一練就知道了 ?
2017-03-24
首先char name[20]應該不可以改成char name。然后,char定義字符類型的數據占1個字節,int定義整型數據占2個字節。我猜,char name[20]的最后一個地址應該是int atk 數據存放的上一個地址,為防止名字過長溢出,影響到后面int atk里存放的數據,所以給char name 加上[20]。最后,沒有給int atk和int price加上長度限制是因為int的聲明已經足夠存放數據所以不用加[]。我想其實應該是可以給int atk 和int price加長度限制的,這里面的一些原理我沒懂得很透徹,所以只能幫你到這里了~~不知道對錯,請后面看到的人指點,這只是本人一點淺薄的看法~拋磚引玉用~