国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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á)式長(zhǎng)度(所占的內(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看起來似乎很簡(jiǎn)單,那來看看下面這段代碼,你能做對(duì)幾個(gè):

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

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

C語言的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ī)則為(圖片來源于網(wǎng)絡(luò)):

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

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

    9

    文章

    3210

    瀏覽量

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

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145605
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語言指針p、*p、&p、*&p、&*p分別代表什么

    * p和 *p又代表什么嗎? 寫個(gè)測(cè)試程序下面是一個(gè)簡(jiǎn)單的C語言代碼,可以用來演示上面提到的幾個(gè)標(biāo)識(shí),讓我們更好的理解幾個(gè)標(biāo)識(shí)的意義: #include int main() {
    發(fā)表于 01-07 07:34

    C語言主要特點(diǎn)

    ,源程序短,因此輸入程序時(shí)工作量少。 2.運(yùn)算豐富,C語言的運(yùn)算包含的范圍很廣泛,共有34種運(yùn)算
    發(fā)表于 01-05 07:41

    C語言嵌入式系統(tǒng)編程注意事項(xiàng)-內(nèi)存操作

    C語言嵌入式系統(tǒng)編程注意事項(xiàng)之內(nèi)存操作 在嵌入式系統(tǒng)的編程中,常常要求在特定的內(nèi)存單元讀寫內(nèi)容,匯編有對(duì)應(yīng)的MOV指令,而除C/C++以外的
    發(fā)表于 01-04 07:31

    如何在TensorFlow Lite Micro中添加自定義操作符(1)

    相信大家在部署嵌入式端的AI應(yīng)用時(shí),一定使用過TensorFlow Lite Micro,以下簡(jiǎn)稱TFLm。TFLm 是專為微控制器和嵌入式設(shè)備設(shè)計(jì)的輕量級(jí)機(jī)器學(xué)習(xí)推理框架,它通過模塊化的操作符系統(tǒng)
    的頭像 發(fā)表于 12-26 10:34 ?5340次閱讀

    C語言經(jīng)典問題及解析

    (\"> 6\") : puts(\"<= 6\"); } 考察點(diǎn): 這 個(gè)問題測(cè)試你是否懂得C語言中的整數(shù)自動(dòng)轉(zhuǎn)換原則,我發(fā)現(xiàn)有
    發(fā)表于 12-23 07:52

    布爾表達(dá)式和零值比較處理

    ==0,x!=0(或者x>0)。 C代碼中每次關(guān)系運(yùn)算的調(diào)用,編譯器都會(huì)發(fā)出一個(gè)比較指令。 如果操作符是上面提到的,編譯器便會(huì)優(yōu)化掉比較指令。例如: int aFunction
    發(fā)表于 12-12 06:16

    C語言C++之間的區(qū)別是什么

    函數(shù)重載,即在同一作用域內(nèi)可以定義多個(gè)同名函數(shù),只要它們的參數(shù)列表不同即可。 C語言不支持函數(shù)重載,每個(gè)函數(shù)必須具有唯一的標(biāo)識(shí)。 4、異常處理: C++內(nèi)置了異常處理機(jī)制,允許程
    發(fā)表于 12-11 06:23

    C語言的常量介紹

    、-13; 實(shí)型常量:13.33、-24.4; 字符常量:‘a(chǎn)’、‘M’ 字符串常量:”I love china!” 在C語言中,可以用一個(gè)標(biāo)識(shí)來表示一個(gè)常量,稱之為符號(hào)常量。符號(hào)常量在使用之前必須先
    發(fā)表于 11-24 07:12

    C語言特性

    1、高效性:直接操作硬件 C 語言代碼的執(zhí)行效率極高,這是其最為顯著的優(yōu)勢(shì)之一。它能夠直接訪問硬件資源,與底層硬件進(jìn)行緊密交互,充分發(fā)揮硬件的性能潛力。在嵌入式開發(fā)中,硬件資源往往十分有限,對(duì)程序
    發(fā)表于 11-24 07:01

    C語言操作符

    C 語言操作符包括按位與( )、按位或(|)、按位異或(^)、按位取反(~)、左移(<<)和右移(>>)。 按位與( ) 只有當(dāng)兩個(gè)二進(jìn)制位
    發(fā)表于 11-21 07:52

    C語言宏拼接運(yùn)算典型使用

    C語言中,##運(yùn)算(稱為[size=16.002px]標(biāo)記拼接運(yùn)算)用于宏定義中將兩個(gè)標(biāo)記(token)拼接成一個(gè)新的標(biāo)記。它在預(yù)處理階段處理,常用于動(dòng)態(tài)生成變量名、函數(shù)名或類型
    發(fā)表于 11-20 08:27

    C語言的printf基本用法介紹

    也是代碼的一部分,但是它并不會(huì)給程序帶來任何影響,編譯器在編譯階段會(huì)忽略注釋的內(nèi)容,或者說刪除注釋的內(nèi)容。我在《C語言標(biāo)識(shí)、關(guān)鍵字和注釋》一節(jié)中做了詳細(xì)講解。 3) money 的輸出值并不是
    發(fā)表于 11-12 07:04

    第4章 C語言基礎(chǔ)以及流水燈的實(shí)現(xiàn)(4.3 4.4)

    的符號(hào)分別是:+、-、*、/、%。 C語言有一個(gè)很重要的賦值運(yùn)算“=”,前邊程序有使用過。在C語言里,“=”代表的意思是賦值,而不是等于。
    的頭像 發(fā)表于 10-29 15:30 ?338次閱讀

    必看!15個(gè)C語言常見陷阱及避坑指南

    ? C語言雖強(qiáng)大,但隱藏的“坑”也不少!稍不留神就會(huì)導(dǎo)致程序崩潰、數(shù)據(jù)異常。本文整理15個(gè)高頻陷阱,助你寫出更穩(wěn)健的代碼! ? 陷阱1:運(yùn)算優(yōu)先級(jí)混淆? 問題:運(yùn)算優(yōu)先級(jí)不同可能導(dǎo)
    的頭像 發(fā)表于 03-16 12:10 ?1818次閱讀

    全套C語言培訓(xùn)資料—PPT課件

    全套C語言培訓(xùn)資料,共427頁,13個(gè)章節(jié):C語言概述、程序的靈魂—算法、數(shù)據(jù)類型 & 運(yùn)算與表達(dá)式、順序程序設(shè)計(jì)、選擇結(jié)構(gòu)程序設(shè)
    發(fā)表于 03-12 14:50