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