日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C++sizeof概念及應(yīng)用方式探討

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

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),蕪湖網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蕪湖等地區(qū)。蕪湖做網(wǎng)站價(jià)格咨詢: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這個(gè)字眼,是不是想到了函數(shù)?錯(cuò)了,sizeof不是一個(gè)函數(shù),你見(jiàn)過(guò)給一個(gè)函數(shù)傳參數(shù),而不加括號(hào)的嗎?sizeof可以,所以sizeof不是函數(shù)。網(wǎng)上有人說(shuō)sizeof是一元操作符,但是我并不這么認(rèn)為,因?yàn)镃++ sizeof更像一個(gè)特殊的宏,它是在編譯階段求值的。舉個(gè)例子:

 

 
 
 
  1. cout<
  2. cout<// == 操作符返回bool類型,相當(dāng)于 cout<

 

在編譯階段已經(jīng)被翻譯為:

 
 
 
  1. cout<<4<
  2. cout<<1<

 

這里有個(gè)陷阱,看下面的程序:

 
 
 
  1. int a = 0;  
  2. cout<
  3. cout<

 

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

 
 
 
  1. int a = 0;  
  2. cout<<4<
  3. cout<

 

所以,sizeof是不可能支持鏈?zhǔn)奖磉_(dá)式的,這也是和一元操作符不一樣的地方。

結(jié)論:不要把sizeof當(dāng)成函數(shù),也不要看作一元操作符,把他當(dāng)成一個(gè)特殊的編譯預(yù)處理。

2、sizeof的用法

C++ sizeof有兩種用法:

(1)sizeof(object)

也就是對(duì)對(duì)象使用sizeof,也可以寫(xiě)成sizeof object 的形式。例如:

(2)sizeof(typename)

也就是對(duì)類型使用sizeof,注意這種情況下寫(xiě)成sizeof typename是非法的。下面舉幾個(gè)例子說(shuō)明一下:

 
 
 
  1. int i = 2;  
  2. cout<
  3. cout<
  4. cout<
  5. cout<
  6. cout<
  7. cout<

 

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

結(jié)論:不論C++ sizeof要對(duì)誰(shuí)取值,***都加上()。


文章題目:C++sizeof概念及應(yīng)用方式探討
標(biāo)題鏈接:http://www.dlmjj.cn/article/dhgdogs.html