91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++ sizeof概念及應用方式是什么

發布時間:2021-10-27 18:51:57 來源:億速云 閱讀:107 作者:柒染 欄目:編程語言

這篇文章給大家介紹C++ sizeof概念及應用方式是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

C++編程語言支持各種程序設計風格,而且對C語言中的各種功能都提供支持。對于這樣一款功能強大的編程語言我們應該如何正確的運用于程序開發中呢?首先先讓我們從一些基本知識開始入手,比如今天為大家介紹的C++ sizeof的一些概念。

1、什么是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是一元操作符,但是我并不這么認為,因為C++ sizeof更像一個特殊的宏,它是在編譯階段求值的。舉個例子:

  1. cout<<sizeof(int)<<endl; // 32位機上int長度為4  

  2. cout<<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???就在于C++ sizeof在編譯階段處理的特性。由于sizeof不能被編譯成機器碼,所以sizeof作用范圍內,也就是()里面的內容也不能被編譯,而是被替換成類型。=操作符返回左操作數的類型,所以a=3相當于int,而代碼也被替換為:

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

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

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

2、sizeof的用法

C++ sizeof有兩種用法:

(1)sizeof(object)

也就是對對象使用sizeof,也可以寫成sizeof object 的形式。例如:

(2)sizeof(typename)

也就是對類型使用sizeof,注意這種情況下寫成sizeof typename是非法的。下面舉幾個例子說明一下:

int i = 2;  cout<<sizeof(i)<<endl; // sizeof(object)的用法,合理  cout<<sizeof i<<endl; // sizeof object的用法,合理  cout<<sizeof 2<<endl; // 2被解析成int類型的object, sizeof object的用法,合理  cout<<sizeof(2)<<endl; // 2被解析成int類型的object, sizeof(object)的用法,合理  cout<<sizeof(int)<<endl;// sizeof(typename)的用法,合理  cout<<sizeof int<<endl; // 錯誤!對于操作符,一定要加()

可以看出,加()是永遠正確的選擇。

結論:不論C++ sizeof要對誰取值,***都加上()。

關于C++ sizeof概念及應用方式是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴南区| 青岛市| 枝江市| 浮梁县| 镇沅| 车致| 永年县| 泰州市| 章丘市| 余江县| 肥乡县| 大竹县| 资讯| 霞浦县| 唐河县| 正宁县| 长子县| 辽阳县| 富裕县| 道真| 台南县| 高雄市| 贡嘎县| 康定县| 祁阳县| 大丰市| 苏州市| 盐池县| 西林县| 天祝| 石棉县| 讷河市| 平利县| 桦南县| 岳阳市| 麦盖提县| 金溪县| 五峰| 洞头县| 自贡市| 玉屏|