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

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計與策劃設(shè)計,蕪湖網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蕪湖等地區(qū)。蕪湖做網(wǎng)站價格咨詢:13518219792
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這個字眼,是不是想到了函數(shù)?錯了,sizeof不是一個函數(shù),你見過給一個函數(shù)傳參數(shù),而不加括號的嗎?sizeof可以,所以sizeof不是函數(shù)。網(wǎng)上有人說sizeof是一元操作符,但是我并不這么認為,因為C++ sizeof更像一個特殊的宏,它是在編譯階段求值的。舉個例子:
- cout<
- cout<
// == 操作符返回bool類型,相當于 cout<
在編譯階段已經(jīng)被翻譯為:
- cout<<4<
- cout<<1<
這里有個陷阱,看下面的程序:
輸出為什么是4,0而不是期望中的4,3???就在于C++ sizeof在編譯階段處理的特性。由于sizeof不能被編譯成機器碼,所以sizeof作用范圍內(nèi),也就是()里面的內(nèi)容也不能被編譯,而是被替換成類型。=操作符返回左操作數(shù)的類型,所以a=3相當于int,而代碼也被替換為:
所以,sizeof是不可能支持鏈式表達式的,這也是和一元操作符不一樣的地方。
結(jié)論:不要把sizeof當成函數(shù),也不要看作一元操作符,把他當成一個特殊的編譯預(yù)處理。
2、sizeof的用法
C++ sizeof有兩種用法:
(1)sizeof(object)
也就是對對象使用sizeof,也可以寫成sizeof object 的形式。例如:
(2)sizeof(typename)
也就是對類型使用sizeof,注意這種情況下寫成sizeof typename是非法的。下面舉幾個例子說明一下:
- int i = 2;
- cout<
- cout<
- cout<
- cout<
- cout<
- cout<
可以看出,加()是永遠正確的選擇。
結(jié)論:不論C++ sizeof要對誰取值,***都加上()。
當前文章:C++sizeof概念及應(yīng)用方式探討
本文鏈接:http://www.5511xx.com/article/dhgdogs.html


咨詢
建站咨詢
