第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C++字符串?dāng)?shù)組中的字符串長(zhǎng)度與int數(shù)組內(nèi)的數(shù)字比較之間的問(wèn)題

C++字符串?dāng)?shù)組中的字符串長(zhǎng)度與int數(shù)組內(nèi)的數(shù)字比較之間的問(wèn)題

C++
拉莫斯之舞 2018-07-20 13:23:29
任何一個(gè)新手都可以看懂的代碼,卻出現(xiàn)一個(gè)小學(xué)數(shù)學(xué)的bug,有哪位大神能告訴我為什么,我真的很惶恐int main(){     //freopen("in.txt","r",stdin);     int Max[2];     for(int i = 0 ; i< 2 ;i++){         Max[i] = -1;     }     string s[2][2];     cin>>s[0][0];     if(s[0][0].length()>Max[0]){         cout<<"string"<<s[0][0]<<"的長(zhǎng)度"<<s[0][0].length()<<"大于"<<Max[0]<<"\n";     }     if(s[0][0].length()<Max[0]){         cout<<"string"<<s[0][0]<<"的長(zhǎng)度"<<s[0][0].length()<<"小于"<<Max[0]<<"\n";     } }
查看完整描述

2 回答

?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

原因很簡(jiǎn)單。
string類的length()函數(shù)的返回類型為size_type。而size_type被定義成無(wú)符號(hào)類型,通常就是unsigned int,具體的就得看操作系統(tǒng)。
而int默認(rèn)是有符號(hào)類型。

所以下面這句:

 if(s[0][0].length()>Max[0])

實(shí)際上就是 大于號(hào)左邊為無(wú)符號(hào)數(shù),右邊為有符號(hào)數(shù)。

C++里又有一條規(guī)則:當(dāng)有符號(hào)數(shù)與無(wú)符號(hào)數(shù)放在一起運(yùn)算時(shí),總是都轉(zhuǎn)換成無(wú)符號(hào)數(shù)。所以啊,大于號(hào)右邊的-1被轉(zhuǎn)成了無(wú)符號(hào)數(shù),那貌似就是最大無(wú)符號(hào)數(shù)了啊。大于號(hào)不成立就很正常了。

第一次回答問(wèn)題,望采納。


查看完整回答
反對(duì) 回復(fù) 2018-07-23
?
萬(wàn)千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

size_type與unsigned int類型不匹配造成的。

查看完整回答
反對(duì) 回復(fù) 2018-07-23
  • 2 回答
  • 0 關(guān)注
  • 1122 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)