国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

數(shù)組:判斷是否到末尾和獲取size的思考

2021-12-28 21:13 作者:云漢含星  | 我要投稿

數(shù)組:(非char,非string)判斷是否到末尾:

? ? 這兩種方法一直都有被用到,直到我的遇到了一個(gè)明顯能進(jìn)去,但是死活進(jìn)不去的循環(huán)...人都給我整傻了!

? ? 沒錯(cuò),這個(gè)地方的第一項(xiàng)? ( 0 != '\0' ) 判定成了相等,所以沒進(jìn)去循環(huán)!我還特地嘗試了一下。如果存在疑問,用 if 去驗(yàn)證這個(gè)等式。所以此辦法遍歷數(shù)組失效了!

????但是問題又來了,如果使用sizeof()去統(tǒng)計(jì)空間大小,這個(gè)就和初始化數(shù)組的時(shí)候相關(guān)了。

????不指定數(shù)組大小的時(shí)候,就會(huì)默認(rèn)分配當(dāng)前需要的內(nèi)存大小,sizeof得出的空間大小也就是實(shí)際的大小。

????如果指定了大小,那么就會(huì)被分配指定的內(nèi)存,以上面的testNum2數(shù)組舉例,實(shí)際占用了6個(gè)數(shù)據(jù),但是統(tǒng)計(jì)出來時(shí)40個(gè)字節(jié),也就是10個(gè)int的大小。

????這個(gè)問題并非只有在int數(shù)組上體現(xiàn)。

數(shù)組:char :判斷是否到末尾:

字符串轉(zhuǎn)為char[]類型的時(shí)候,實(shí)際上編譯器做了一個(gè)限制!舉個(gè)例子:

這里給三個(gè)char數(shù)組的初始化:后兩個(gè)都分配了6個(gè)字節(jié),因?yàn)?字符串一定會(huì)存在一個(gè)'\0'作為字符串的結(jié)尾標(biāo)識(shí),所以實(shí)際大小會(huì)多一個(gè)。

????所以針對(duì)string可以放心的使用(str[i] != '\0') 作為末尾判定。但是 char[] 在數(shù)據(jù)存滿的情況下,使用 '\0' 判定會(huì)越界。?

????還有一點(diǎn):string使用const char[]實(shí)現(xiàn)的,所以? str[i] = 'x' ;? 這樣子的賦值語法不會(huì)生效,同時(shí)string直接轉(zhuǎn)為char[] 是不可以實(shí)現(xiàn)的。需要自己去遍歷str給char[]賦值。

????所以一個(gè)很矛盾的點(diǎn)在于,其他類型(非string)的數(shù)組使用 “是否等于‘\0’來判斷”是不合理的。但是使用sizeof去統(tǒng)計(jì)字節(jié)的方式,往往不是這個(gè)數(shù)組實(shí)際存儲(chǔ)數(shù)據(jù)的長(zhǎng)度(很多時(shí)候我們是需要定義一個(gè)大的數(shù)組去應(yīng)對(duì)一個(gè)未知的數(shù)據(jù))

????所以對(duì)于長(zhǎng)度不確定,并存在0的int數(shù)組,我們沒有辦法用sizeof或者!='\0'的方法直接獲取實(shí)際有效長(zhǎng)度。可以把非數(shù)據(jù)部分寫為沒有意義的一個(gè)數(shù),以此作為判斷結(jié)尾的標(biāo)志。

還有一點(diǎn):string類型需要使用size()方法。


數(shù)組:判斷是否到末尾和獲取size的思考的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
茂名市| 阳西县| 莱西市| 绥芬河市| 宁晋县| 大足县| 通渭县| 松原市| 北流市| 墨脱县| 盖州市| 佳木斯市| 芦溪县| 墨玉县| 紫金县| 习水县| 平潭县| 荃湾区| 安新县| 阳信县| 汽车| 台山市| 突泉县| 宜章县| 万荣县| 斗六市| 永宁县| 新绛县| SHOW| 孟村| 洞口县| 乐安县| 集贤县| 马公市| 板桥市| 克拉玛依市| 邵东县| 德保县| 肇州县| 哈巴河县| 祁门县|