精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言的sizeof操作符基礎(chǔ)和經(jīng)典問題

汽車玩家 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2020-04-04 17:39 ? 次閱讀

sizeof基礎(chǔ)

C語言中,sizeof是一個(gè)操作符(operator),而不是函數(shù)!其用于判斷數(shù)據(jù)類型或者表達(dá)式長度(所占的內(nèi)存字節(jié)數(shù))。其有兩種表達(dá)形式:

(1)sizeof(類型說明符)

(2)sizeof 表達(dá)式

我們通常使用第(1)種形式。

其返回值類型為size_t,在頭文件stddef.h中定義。這是一個(gè)依賴于編譯系統(tǒng)的值,一般定義為:

typedef unsigned int size_t;

首先確定我們當(dāng)前編譯環(huán)境中C語言各個(gè)基本數(shù)據(jù)類型在內(nèi)存中所占字節(jié)數(shù),我這里是32bit編譯環(huán)境:

C語言的sizeof操作符基礎(chǔ)和經(jīng)典問題

我們這里的輸出結(jié)果為:

C語言的sizeof操作符基礎(chǔ)和經(jīng)典問題

sizeof典型問題

sizeof看起來似乎很簡單,那來看看下面這段代碼,你能做對幾個(gè):

C語言的sizeof操作符基礎(chǔ)和經(jīng)典問題

實(shí)際運(yùn)行 輸出結(jié)果為:

C語言的sizeof操作符基礎(chǔ)和經(jīng)典問題

簡要分析:

(1)sizeof(char) 的值為1。因?yàn)閏har類型數(shù)據(jù)在內(nèi)存中占1字節(jié)。

(2)sizeof(char*)的值為4。因?yàn)閏har*代表一個(gè)指針,在32bit環(huán)境中為4字節(jié),也即unsigned int的字節(jié)長度。

(3)sizeof('a')的值為4。因?yàn)榇颂帯產(chǎn)’是獨(dú)立存在的一個(gè)字符(沒有賦值給其它變量),實(shí)際上就是一個(gè)整型數(shù),占4個(gè)字節(jié),即此處‘a(chǎn)’對應(yīng)的ascii碼的十進(jìn)制為整數(shù)97。但是需要注意的是,若有如下定義:

char ch = 'a';

則此處ch的字節(jié)數(shù)sizeof(ch)的值為1,而不是4。

(4)sizeof(*s+0)的值為4,因?yàn)?#39;h'+0 轉(zhuǎn)化為int,占4字節(jié)。此處涉及到類型轉(zhuǎn)換的問題。即不同類型的數(shù)據(jù)進(jìn)行運(yùn)算時(shí),會首先轉(zhuǎn)換成相同數(shù)據(jù)類型。轉(zhuǎn)換規(guī)則為(圖片來源于網(wǎng)絡(luò)):

C語言的sizeof操作符基礎(chǔ)和經(jīng)典問題

(5)sizeof(*s)的值為1,因?yàn)榇颂?s為字符串s的第1個(gè)字符‘h’(注意與第三點(diǎn)區(qū)分開來,這里是有用char來修飾的),所以所占字節(jié)長度為1。

(6)sizeof(s)的值為4,同(2),此處s是一個(gè)指針,在32bit環(huán)境中為4字節(jié),也即unsigned int的字節(jié)長度。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3002

    瀏覽量

    73887
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7598

    瀏覽量

    136211
收藏 人收藏

    評論

    相關(guān)推薦

    邏輯異或運(yùn)算在Python中的用法

    在Python編程語言中,邏輯異或運(yùn)算并不直接作為一個(gè)內(nèi)置的操作符存在,因?yàn)镻ython更側(cè)重于高級編程和可讀性,并沒有直接提供異或運(yùn)算的簡寫形式用于邏輯運(yùn)算(真/假值的異或)。然
    的頭像 發(fā)表于 11-19 09:46 ?87次閱讀

    C語言指針運(yùn)算詳解

    C語言中,當(dāng)你有一個(gè)指向數(shù)組中某個(gè)元素的指針時(shí),你可以對該指針執(zhí)行某些算術(shù)運(yùn)算,例如加法或減法。這些運(yùn)算可以用來遍歷數(shù)組中的元素,如ptr[i]等價(jià)于*(ptr + i)。然而,如果你的操作使得指針指向了數(shù)組以外的位置(除了數(shù)
    的頭像 發(fā)表于 10-30 11:16 ?162次閱讀

    技術(shù)干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運(yùn)算與優(yōu)先級

    C語言的學(xué)習(xí)過程中,運(yùn)算的使用是不可忽視的重要環(huán)節(jié)。本文將繼續(xù)深入探討C語言中的運(yùn)算,重點(diǎn)
    的頭像 發(fā)表于 10-13 08:09 ?196次閱讀
    技術(shù)干貨驛站 ▏解鎖<b class='flag-5'>C</b><b class='flag-5'>語言</b>高效編程秘訣:深入解析運(yùn)算<b class='flag-5'>符</b>與優(yōu)先級

    技術(shù)干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析運(yùn)算的核心技能!

    C語言的編程領(lǐng)域中,運(yùn)算是實(shí)現(xiàn)數(shù)據(jù)處理與邏輯操作的關(guān)鍵工具。無論是在處理簡單的數(shù)值計(jì)算,還是在構(gòu)建復(fù)雜的邏輯結(jié)構(gòu)時(shí),運(yùn)算的使用貫穿始終
    的頭像 發(fā)表于 09-18 15:56 ?314次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:編程高手必備,全方位解析運(yùn)算<b class='flag-5'>符</b>的核心技能!

    鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基礎(chǔ)數(shù)據(jù)類型整數(shù)類型

    (十進(jìn)制)。 整數(shù)類型支持的操作 整數(shù)類型默認(rèn)支持的操作符包括:算術(shù)操作符、位操作符、關(guān)系操作符、自增和自減
    發(fā)表于 09-13 14:55

    鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基礎(chǔ)數(shù)據(jù)類型布爾類型

    let b: Bool = false 布爾類型支持的操作 布爾類型支持的操作符包括:邏輯操作符(邏輯非!,邏輯與 &&,邏輯或 ||)、部分關(guān)系操作符
    發(fā)表于 09-09 09:57

    c語言中從左到右結(jié)合怎么看

    C語言中,操作符的結(jié)合性(Associativity)是指當(dāng)操作符在表達(dá)式中連續(xù)出現(xiàn)時(shí),它們?nèi)绾闻c操作數(shù)結(jié)合的順序。對于大多數(shù)二元
    的頭像 發(fā)表于 08-20 11:42 ?707次閱讀

    c語言從右到左的運(yùn)算有哪些

    以下是一些主要的從右到左運(yùn)算的C語言運(yùn)算: 函數(shù)調(diào)用運(yùn)算 ( () ):當(dāng)您調(diào)用一個(gè)函數(shù)時(shí),參數(shù)列表是從右到左進(jìn)行求值的。 后置遞增運(yùn)算
    的頭像 發(fā)表于 08-20 11:39 ?708次閱讀

    FPGA學(xué)習(xí)筆記---基本語法

    3、信號類型:wire, reg, tri等 4、參數(shù)定義:parameter 5、運(yùn)算操作符:各種邏輯操作符、移位操作符、算數(shù)操作符等 6、比較判斷:if ... else, ca
    發(fā)表于 06-23 14:58

    c語言,c++,java,python區(qū)別

    C語言C++、Java和Python是四種常見的編程語言,各有優(yōu)點(diǎn)和特點(diǎn)。 C語言
    的頭像 發(fā)表于 02-05 14:11 ?2244次閱讀

    “+”操作符的使用技巧

    這篇寫個(gè)平時(shí)易被忽略的小知識點(diǎn),一元 + 操作符的使用技巧。
    的頭像 發(fā)表于 12-28 13:27 ?508次閱讀

    C語言-#和##的具體用法

    C語言中,在宏里面使用’#’和’##’有它非常神奇的作用。在宏定義的替換的過程中,#號可以作為一個(gè)預(yù)處理運(yùn)算,把宏參數(shù)轉(zhuǎn)換為字符串。##運(yùn)算則可以把兩個(gè)宏參數(shù)組合在一起。下面就來說
    的頭像 發(fā)表于 12-19 12:54 ?4950次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>-#和##的具體用法

    oracle中拼接字符串函數(shù)

    , string2) 其中,string1 和 string2 是需要連接的字符串參數(shù)。 除了 CONCAT 函數(shù),Oracle 還提供了一些其他的字符串拼接函數(shù)和操作符,這些函數(shù)和操作符可以根據(jù)具體的要求和情況來
    的頭像 發(fā)表于 12-06 09:49 ?2815次閱讀

    C語言運(yùn)行環(huán)境是什么

    計(jì)算等多個(gè)領(lǐng)域。為了能夠正確、有效地運(yùn)行C語言程序,必須具備相應(yīng)的運(yùn)行環(huán)境。 C語言運(yùn)行環(huán)境包括軟件運(yùn)行環(huán)境和硬件運(yùn)行環(huán)境兩個(gè)方面。下面將從這兩個(gè)方面詳細(xì)介紹
    的頭像 發(fā)表于 11-27 16:13 ?3354次閱讀

    如何選擇創(chuàng)建c語言c++

    ++ 的詳盡、詳實(shí)、細(xì)致的討論。 C 語言的特點(diǎn)和優(yōu)勢: C 語言是一種過程性的編程語言,它注重的是簡潔、高效、直接的編碼方式。以下是一些
    的頭像 發(fā)表于 11-27 15:58 ?571次閱讀