日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 学习杂谈:sizeof和sizeof(string)的问题

發布時間:2023/12/19 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 学习杂谈:sizeof和sizeof(string)的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近遇到一個令我困惑的問題,就是 sizeof(string)的值,之前在vs2010上測得是固定28,最近在用CLion,上面測得是4,出現了不一樣的結果,我又在vs2013上試了一下,結果又不一樣,在vs2013上是32.

查閱了相關資料得出結論:string的實現在各庫中可能有所不同,但是在同一庫中相同一點是,無論你的string里放多長的字符串,它的sizeof()都是固定的,字符串所占的空間是從堆中動態分配的,與sizeof()無關。 sizeof(string)=4可能是最典型的實現之一,不過也有sizeof()為28、32字節的庫實現。 但是MS2015測試后sizeof(string)=40.還是跟編譯器有關.

也就是說sizeof(string)和字符串的長度是無關的,在一個系統中所有的sizeof(string)是一個固定值,這個和編譯器相關,string字符串是存儲在堆上,這個屬于動態分配的空間,對于別的整形浮點型數據類型則沒有這個問題。

sizeof到底是什么?

這個我們要看一下,sizeof在msdn上的定義:

The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.

看到return這個字眼,是不是想到了函數?錯了,sizeof不是一個函數,sizeof可以不加括號,所以sizeof不是函數。網上有人說sizeof是一元操作符,但是我并不這么認為,因為sizeof更像一個特殊的宏,它是在編譯階段求值的。舉個例子:
?

cout<<sizeof(int)<<endl; // 32位機上int長度為4cout<<sizeof(1==2)<<endl; // == 操作符返回bool類型,相當于 cout<<sizeof(bool)<<endl;

在編譯階段已經被翻譯為:

cout<<4<<endl;cout<<1<<endl;

這里有個陷阱,看下面的程序:

int a = 0;cout<<sizeof(a=3)<<endl;cout<<a<<endl;

輸出為什么是4,0, 而不是期望中的4,3???就在于sizeof在編譯階段處理的特性。由于sizeof不能被編譯成機器碼,所以sizeof作用范圍內,也就是()里面的內容也不能被編譯,而是被替換成類型。=操作符返回左操作數的類型,所以a=3相當于int,而代碼也被替換為:

int a = 0;cout<<4<<endl;cout<<a<<endl;

所以,sizeof是不可能支持鏈式表達式的,這也是和一元操作符不一樣的地方。

結論:不要把sizeof當成函數,也不要看作一元操作符,把他當成一個特殊的編譯預處理。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的C++ 学习杂谈:sizeof和sizeof(string)的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产乱子伦一区二区 | 精东av在线| 精品+无码+在线观看 | 午夜影院a | 欧美日韩免费 | 色婷婷在线视频 | 欧美卡一卡二 | 色婷婷午夜 | 91小视频在线| 中文字幕一区二区三区波野结 | 国产人妖在线视频 | 在线免费观看 | 国产色视频一区二区三区qq号 | 欧美sese| 日本三级aaa | 伊人影院中文字幕 | 亚洲啪av永久无码精品放毛片 | 午夜福利123 | 黄色激情视频在线观看 | 日韩avav | 少妇特黄一区二区 | 91性生活 | 五月综合激情日本mⅴ | 亚洲精品乱码久久久久久写真 | 91一区二区三区四区 | 欧美视频一区在线 | 美女av网址 | 宅男视频在线免费观看 | 婷婷丁香九月 | 激情视频免费观看 | 少妇熟女视频一区二区三区 | 日日骚视频 | 久中文字幕| 全程粗话对白视频videos | 国产资源在线视频 | 中国毛片网站 | 一起草最新网址 | 精品人妻人人做人人爽夜夜爽 | 中文字幕一区二区三区视频 | 国产激情视频一区二区 | 欧美国产视频一区 | 香蕉久久国产av一区二区 | 三级av在线免费观看 | 久久不雅视频 | 欧美久久精品 | 国产二区一区 | 国产福利在线视频 | 亚洲私人影院 | 天天色天天射天天操 | 久久久久亚洲av成人网人人软件 | 97在线免费观看视频 | 亚洲夜夜夜| www.色播.com | 日本黄网在线观看 | 成人国产av一区二区三区 | 九一精品一区 | 精品二三区 | 欧美放荡办公室videos4k | 幸福宝在线观看 | 精品久久久久久中文字幕人妻最新 | 日韩有码在线视频 | 美女看片 | 中日韩精品视频 | 欧美aaa一级片 | 欧美在线天堂 | 神马午夜场 | 奴性白洁会所调教 | 韩国av网 | 久久福利一区 | 中文字幕一区二区精品 | 精品视频导航 | 亚洲自拍p | 男女做激情爱呻吟口述全过程 | 日批视频在线看 | 午夜大片网 | 永久av免费 | 亚洲欧美日韩精品在线 | 亚洲欧美偷拍一区 | 奶水旺盛的女人伦理 | 国产精品无码在线播放 | 特级西西444www高清大胆 | 久久成年人视频 | 国产性生活网站 | 黄色aa视频 | 免费麻豆视频 | 91九色porny视频| 欧美性xxxx在线播放 | 在线观看av网页 | 影音先锋久久 | 成人做爰免费视频免费看 | 免费视频网站www | 九九视频这里只有精品 | 天堂成人在线视频 | 欧美一级片在线免费观看 | 精品久久人人 | 亚洲中字在线 | 天天操天天看 | av网站亚洲 | av之家在线|