那曲檬骨新材料有限公司

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

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

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

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

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

sizeof基礎(chǔ)

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

(1)sizeof(類型說(shuō)明符)

(2)sizeof 表達(dá)式

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

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

typedef unsigned int size_t;

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

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

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

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

sizeof典型問題

sizeof看起來(lái)似乎很簡(jiǎn)單,那來(lái)看看下面這段代碼,你能做對(duì)幾個(gè):

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

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

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

簡(jiǎn)要分析:

(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é)長(zhǎng)度。

(3)sizeof('a')的值為4。因?yàn)榇颂帯產(chǎn)’是獨(dú)立存在的一個(gè)字符(沒有賦值給其它變量),實(shí)際上就是一個(gè)整型數(shù),占4個(gè)字節(jié),即此處‘a(chǎn)’對(duì)應(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í),會(huì)首先轉(zhuǎn)換成相同數(shù)據(jù)類型。轉(zhuǎn)換規(guī)則為(圖片來(lái)源于網(wǎng)絡(luò)):

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

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

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

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

    關(guān)注

    8

    文章

    3055

    瀏覽量

    74337
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137733
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    在程序設(shè)計(jì)中,我們常常需要重復(fù)執(zhí)行某一段代碼。為了提高效率和簡(jiǎn)化代碼,循環(huán)語(yǔ)句應(yīng)運(yùn)而生。C語(yǔ)言作為一門經(jīng)典的編程語(yǔ)言,提供了多種循環(huán)控制結(jié)構(gòu),幫助程序員高效地實(shí)現(xiàn)重復(fù)
    的頭像 發(fā)表于 12-07 01:11 ?251次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

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

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

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

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

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

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

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

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

    C語(yǔ)言指針詳細(xì)解析

    可以對(duì)數(shù)據(jù)本身,也可以對(duì)存儲(chǔ)數(shù)據(jù)的變量地址進(jìn)行操作。 指針是一個(gè)占據(jù)存儲(chǔ)空間的實(shí)體在這一段空間起始位置的相對(duì)距離值。在C/C++語(yǔ)言中,指針一般被認(rèn)為是指針變量,指針變量的內(nèi)容存儲(chǔ)的是
    發(fā)表于 09-14 10:03

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

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

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

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

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

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

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

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

    鴻蒙原生應(yīng)用元服務(wù)開發(fā)-初識(shí)倉(cāng)頡開發(fā)語(yǔ)言

    復(fù)用和生態(tài)兼容。 領(lǐng)域易擴(kuò)展 :倉(cāng)頡編程語(yǔ)言提供了基于詞法宏的元編程能力,支持在編譯時(shí)變換代碼,此外,還提供了尾隨 lambda、屬性、操作符重載、部分關(guān)鍵字可省略等特性,開發(fā)者可由此深度定制
    發(fā)表于 08-15 10:00

    鴻蒙原生應(yīng)用元服務(wù)開發(fā)-初識(shí)倉(cāng)頡開發(fā)語(yǔ)言

    復(fù)用和生態(tài)兼容。 領(lǐng)域易擴(kuò)展 :倉(cāng)頡編程語(yǔ)言提供了基于詞法宏的元編程能力,支持在編譯時(shí)變換代碼,此外,還提供了尾隨lambda、屬性、操作符重載、部分關(guān)鍵字可省略等特性,開發(fā)者可由此深度定制程序的語(yǔ)法
    發(fā)表于 07-30 17:49

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

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

    淺析C語(yǔ)言中的變量修飾

    一、修飾類型51單片機(jī)采用哈佛結(jié)構(gòu)。內(nèi)存空間編址有重疊。可以在不同總線上定義不同的變量。在KEILC51中定義了data、idata、xdata、code幾種域修飾。這些修飾決定了變量訪問方式
    的頭像 發(fā)表于 04-15 08:10 ?812次閱讀
    淺析<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中的變量修飾<b class='flag-5'>符</b>

    C語(yǔ)言基礎(chǔ)-為什么要使用C

    當(dāng)今最流行的 Linux 操作系統(tǒng)和 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) MySQL 都是使用 C 語(yǔ)言編寫的。
    發(fā)表于 03-25 11:20 ?489次閱讀
    网站百家乐博彩| 百家乐官网顶尖高手| 壶关县| 百家乐官网赢钱好公式| 百家乐官网娱乐皇冠世界杯| 百家乐官网最稳妥的打法| 百家乐官网黑牌靴| 678百家乐官网博彩娱乐场| 百家乐官网真人荷官网| 利来百家乐官网的玩法技巧和规则 | 大发888游戏平台hana| 澳门顶级赌场手机在线链接| 百家博彩网| 百家乐官网视频游戏平台| 太阳城百家乐官网出千技术| 网上百家乐官网是叫九五至尊么| 蓝盾百家乐官网平台| 风水24山代表什么| 百家乐专业赌博| 大发888城| 界首市| 百家乐官网注册优惠平台| 百家乐官网存1000送| 百家乐网络视频游戏| 百家乐任你博娱乐网| 百家乐娱乐城优惠| 爱拼百家乐的玩法技巧和规则| 大发888最新网址| 张北县| 百家乐官网单机游戏免费下| 澳门百家乐走势图| 大发888真人娱乐场游戏平台| 泰兴市| 中华百家乐官网的玩法技巧和规则 | 娱乐城百家乐的玩法技巧和规则 | tt娱乐城官方网站| 玩百家乐官网技巧博客| 网上百家乐网址| 大发888娱乐城客服| 来博百家乐官网现金网| 百家乐有电脑游戏吗|