<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>學習英語>專業英語>計算機英語>

        c語言中sizeof的用法

        時間: 長思709 分享

          c語言中sizeof的用法的用法你知道嗎?下面小編就跟你們詳細介紹下c語言中sizeof的用法的用法,希望對你們有用。

          c語言中sizeof的用法的用法如下:

          sizeof其實就是一個運算符,和那些+,-一樣的東西,在程序編譯的時候進行解析轉換。雖然我們經常見到sizeof后面跟著個小括號,長得和函數差不多,但它和函數完全是兩碼事。

          2,有什么用?

          sizeof其實就是用于告訴我們編譯器在為某一特定數據或者某種數據類型的數據在存儲空間中開辟空間時,開辟的空間大小,以字節為單位。

          3,怎么用?

          sizeof(類型),或者sizeof(變量)都可以,得到的就是類型或者變量的存儲空間。當對變量用的時候,也可以沒有括號,直接 sizeof 變量,但一般不用(我一般都是只記一種通用的用法……)。

          4,用的時候要注意什么?

          (1)sizeof返回的占用空間大小是為這個變量開辟的大小,而不只是它用到的空間。和現今住房的建筑面積和實用面積的概念差不多。所以對結構體用的時候,大多情況下就得考慮字節對齊的問題了。

          (2)對位域成員等連編譯器都無法確定存儲空間的東西不能用。這個應該比較好理解,因為sizeof返回的都是以字節為單位的數據,你讓它去求那些以位為單位的大小,這不是存心難為編譯器嘛。所以編譯器采用的方案是統一不受理,即使你說你剛好是8位,占一個字節,編譯器也不理你。

          (3)sizeof返回的數據類型是unsigned int。因為C中不同類型數據混合運算時的自動轉換,有時候不注意的話可能會出問題,具體可以參照下面的程序例子。

          (4)要注意數組名和指針變量的區別。通常情況下,我們總覺得數組名和指針變量差不多,但是在用sizeof的時候差別很大,對數組名用sizeof返回的是整個數組的大小,而對指針變量進行操作的時候返回的則是指針變量本身所占得空間,在32位機的條件下一般都是4。而且當數組名作為函數參數時,在函數內部,形參也就是個指針,所以不再返回數組的大小。

          5,實例分析

          源碼:

          1

          2

          3

          4

          5

          6

          7

          8

          9

          10

          11

          12

          13

          14

          15

          16

          17

          18

          19

          20

          21

          22

          23

          24

          25

          26

          27

          28

          #include<stdio.h>

          int main()

          {

          int iVal = 3;

          printf("The size of type int is %d \n", sizeof(int));

          printf("The size of iVal is %d\n", sizeof(iVal));

          printf("The size of iVal is %d\n", sizeof iVal);

          if((iVal - sizeof(int)) < 0)

          {

          printf("The return type is int\n");

          }

          else

          {

          printf("The return type is unsigned int\n");

          }

          char chArrayCon[7];

          char *chp;

          chp = chArrayCon;

          printf("The size of chArrayCon is %d, The size of chp is %d\n", sizeof(chArrayCon), sizeof(chp));

          int iArraySize = 3;

          char chArrayVar[iArraySize];

          printf("The size of chArrayVar is %d\n", sizeof(chArrayVar));

          return 0;

          }

          運行結果:

          The size of type int is 4

          The size of iVal is 4

          The size of iVal is 4

          The return type is unsigned int

          The size of chArrayCon is 7, The size of chp is 4

          The size of chArrayVar is 3

          結果分析:

          代碼第一部分主要就是簡單的表示了一下用法。

          第二部分說明了注意事項的第三項。按說,iVal的值是3,減4的話應該是-1,小于0,輸出的應該是"he return type is int"。但是由于當int和unsigned int一起運算時,會默認變成unsigned int,所以結果會是一個很大的unsigned int類型的數,是大于0的。

          代碼第三部分就簡單說明了數組名和指針變量的區別,即使你把指針變量指向數組名,編譯器依然能夠分辨出區別。

          以上講述的都沒有考慮在C99標準下的情況。因為在C99標準下有種特殊情況,那就是不定長數組的使用。當對不定長數組名使用sizeof的話,返回的也是整個數組的大小,就像實例中第四塊代碼一樣。但是這并不是在編譯階段執行的,而是在程序運行階段執行的。因為在編譯的時候,編譯器一般不知道變量的值是多少。(當然例子中我直接賦值3,可能不方便理解,可以假想iArraySize是通過scanf來獲得實際數值的,然后再聲明數組的)。對于這種情況,實際中應用的并不多,大家可以當做特殊情況對待即可,或者直接忽略掉也行……

          6總結

          其實sizeof的作用就是告訴我們分配給變量的“建筑面積”的大小,只要記得這一點應該就夠了,不管這個變量類型是普通的整型數據,還是結構體,共用體,枚舉……記住這一點后,當我們再去想知道sizeof對不同數據類型操作返回的值到底是什么的時候,只需搞明白那些數據類型到底要消耗多少“建筑面積”就可以啦!

        c語言中sizeof的用法

        c語言中sizeof的用法的用法你知道嗎?下面小編就跟你們詳細介紹下c語言中sizeof的用法的用法,希望對你們有用。 c語言中sizeof的用法的用法如下: sizeof其實就是一個運算符,和那些+,-一樣的東西,在程序編譯的時候進行解析轉換。雖然
        推薦度:
        點擊下載文檔文檔為doc格式

        精選文章

        • c語言中scanf的用法
          c語言中scanf的用法

          c語言中scanf的用法的用法你知道嗎?下面小編就跟你們詳細介紹下c語言中scanf的用法的用法,希望對你們有用。 c語言中scanf的用法的用法如下: Printf和S

        • c語言中return的用法
          c語言中return的用法

          c語言中 符號的用法你知道嗎?下面小編就跟你們詳細介紹下c語言中 符號的用法,希望對你們有用。 c語言中 符號的用法如下: return是C++預定義的語句,

        • c語言中realloc函數的用法
          c語言中realloc函數的用法

          c語言中realloc函數的用法的用法你知道嗎?下面小編就跟你們詳細介紹下c語言中realloc函數的用法的用法,希望對你們有用。 c語言中realloc函數的用法的用法

        • c語言中rand的用法
          c語言中rand的用法

          c語言中rand的用法的用法你知道嗎?下面小編就跟你們詳細介紹下c語言中rand的用法的用法,希望對你們有用。 c語言中rand的用法的用法如下: rand(產生隨

        533351 主站蜘蛛池模板: 亚洲电影天堂在线国语对白| P尤物久久99国产综合精品| 国产美女自慰在线观看| 波多野结衣久久一区二区| 九九热视频在线精品18| 开心五月深深爱天天天操| 亚洲AV永久无码精品秋霞电影影院| 日韩av无码精品人妻系列| 国产精品一区中文字幕| 欧美亚洲h在线一区二区| 亚洲国产AⅤ精品一区二区不卡| 久久精品国产亚洲AⅤ无码| 久久精品99国产精品日本| 日韩有码中文在线观看| 欧美人与动欧交视频| 久久精品午夜视频| 99久久精品久久久| 特级xxxxx欧美孕妇| 伊人久久久av老熟妇色| 色狠狠综合天天综合综合| 5555国产在线观看| 中文字幕亚洲国产精品| 97久久精品人人做人人爽| 久久精品亚洲国产成人av| 中文字幕有码日韩精品| 一本大道无码av天堂| 美女胸18下看禁止免费视频| 97精品久久久大香线焦| 国产人伦精品一区二区三| 办公室强奷漂亮少妇视频| 亚洲毛片多多影院| 国产成人国产在线观看| 一个人看的www视频免费观看| 亚洲欧洲精品一区二区| 毛片在线看免费| 亚洲精品视频久久偷拍| 欧美日韩免费专区在线观看 | a级毛片在线免费观看| 又大又紧又粉嫩18p少妇| 制服 丝袜 亚洲 中文 综合| 欧美黑人巨大videos精品|