1. 程式人生 > >C語言中sizeof的用法

C語言中sizeof的用法

最近好多公司來武漢招聘,我也參加了不少的筆試,雖然結果都不是很理想,但是也發現了自己很多的不足,先總結一下C語言中sizeof的一些用法,因為基本上只要是筆試題目,都會有關於這個的用法

1.sizeof的名稱叫做求位元組操作符,形式很像一個函式,就是求某個型別或者物件的位元組數

2.sizeof的返回值型別是size_t,它是一個unsigned int型別

2.char、signed char和unsigned char的sizeof值為1,因為都是字元型變數

3.sizeof的用法:

   char a='z';

   sizeof(a);         //值為1

   ----------------------------------------

   sizeof(int);       //32位系統中值為4

   sizeof(double);//32位系統中值為8

   sizeof(char);    //值為1

   ----------------------------------------

   char *p="zs"; 

   sizeof(p)          //32位系統中該指標的值為4

4.陣列的sizeof值等於陣列所佔用的記憶體位元組數,例如:

   char c1[] = "abc";
   int c2[3];
   sizeof( c1);  // 結果為4,字元 末尾還存在一個NULL終止符
   sizeof( c2 ); // 結果為3*4=12(因為c2陣列中的每一個成員都是int型,佔四個位元組)

5.結構體中的sizeof

   (未完待續)--------->今天2月6日,接著寫完

   typedef struct  _test
  {
     int i;  //4個位元組
     float f; //4個位元組
     char c; // 1個位元組
  } test;

  test *pt;

  printf("int i的位元組:%d/n",sizeof(pt->i));     //輸出4
  printf("float f的位元組:%d/n",sizeof(pt->f));  //輸出4
  printf("char c的位元組:%d/n",sizeof(pt->c)); // 輸出1
  printf("結構體test:%d/n",sizeof(test));      //輸出12,涉及到位元組對齊

相關推薦

C言中sizeof用法詳解

大部分公司在招聘技術職位中,面試的時候,都會考大家的c語言基礎,而sizeof是他們最喜歡考的知識點,現總結如下: 1. 定義: sizeof是C語言的一種單目操作符,如C語言的其他操作符++、--等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大

C言中 sizeof 特殊用法

6.23 Arithmetic on void- and Function-Pointers In GNU C, addition and subtraction operations are

C言中sizeof用法

最近好多公司來武漢招聘,我也參加了不少的筆試,雖然結果都不是很理想,但是也發現了自己很多的不足,先總結一下C語言中sizeof的一些用法,因為基本上只要是筆試題目,都會有關於這個的用法 1.sizeof的名稱叫做求位元組操作符,形式很像一個函式,就是求某個型別或者物件的位

C言中sizeof與strlen區別

由於 def sizeof 繼續 數組 color 例如 結束 自動添加 sizeof 初始的分配的空間大小,期中 sizeof(unsigned char) = 1; sizeof(signed char) = 1;        sizeof(int) = 4; siz

C言中Extern用法

規範 這一 聲明 不一定 bsp 可用 代碼 指針 一點   extern用在變量或函數的聲明前,用來說明“此變量/函數是在別處定義的,要在此處引用”。   extern修飾變量的聲明。   舉例:若a.c中需引用b.c中的變量int v,可以在a.c中聲明exte

C言中sizeof測試陣列指標大小問題

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { int arr[5] = {1, 2, 3

C言中const用法解析

const修飾的變數儲存位置,和不用const修飾的沒區別!!!!!! 關鍵字const用來定義常量,如果一個變數被const修飾,那麼它的值就不能再被改變,我想一定有人有這樣的疑問,C語言中不是有#define嗎,幹嘛還要用const呢,我想事物的存在一定有它

C言中sizeof()和strlen()的區別

《sizeof》 (一)、sizeof的基本概念 sizeof操作符以位元組形式給出了其運算元的儲存大小。運算元可以是一個表示式或括在括號 內的型別名。運算元的儲存大小由運算元的型別決定。 (二)使用方法 1、用於資料型別 sizeof使用形

C言中sizeof與strlen 的區別

字符指針 系統 32位 大小 添加 std 指針 為什麽 一行 sizeof與strlen是有著本質的區別,sizeof是求數據類型所占的空間大小,而strlen是求字符串的長度,字符串以/0結尾。總的來說sizeof把‘\0‘也給數上了,而strlen遇到‘\0‘就停止計

C言中sizeof、strlen函數的使用

png .com ima block cto com 大小 studio pch 一、測試環境   Win10 + Visual Studio 2017 二、測試代碼 #include "pch.h" #include <iostream> #in

C言中sizeof用法

C語言中的sizeof是一個很有意思的關鍵字,經常有人用不對,搞不清不是什麼。我以前也有用錯的時候,現在寫一寫,也算是提醒一下自己吧。反正現在來看,還在搞sizeof是什麼意思,怎麼用正確,還是有點搞笑,都經常用的東西,沒有理解透徹,就差的太遠了。 第一  sizeof

C言中#define的用法

inux 就是 linu head 突出 開發 ffffff 條件 就會 1.簡單的define定義#define MAXTIME 1000一個簡單的MAXTIME就定義好了,它代表1000,如果在程序裏面寫if(i<MAXTIME){.........}編譯器在處理

C言中sprintf()函數的用法

用法 href bsp HA 連接 art tail 格式化 類型轉換 sprintf函數的用法1、該函數包含在stdio.h的頭文件中。 2、sprintf和平時我們常用的printf函數的功能很相似。sprintf函數打印到字符串中,而printf函數打印輸出到屏幕

C言中,當計算字符數組長度時,用sizeof 和strlen 的原理及兩者的區別

指針 data- 編譯器 tracking 行處理 ews csdn 編譯 分配 字符數組的長度計算:必須以終止符’\0‘作為邊界,但對字符數組賦值時,有兩種方式: 1:定義時用字符初始化 (1)char chs[7] = {‘a‘, ‘c‘, ‘0‘, ‘z‘, ‘3

C言中typedef和sizeof的註意事項

isp sizeof spa 註意 list數據 對象 audio 應該 user typedef的作用是給一個數據類型起一個別名。 typedef struct LIST { int data; }SeqList; SeqList 就相當於struct LIS

C言中的volatile用法

Part 1:字首理論知識介紹 1 > 編譯器的優化         由於記憶體訪問速度遠不及CPU處理速度,為提高機器整體效能,在硬體上引入硬體快取記憶體Cache,加速對記憶體的訪問。另外在現代CPU中指令的執行並不一定嚴格按照

c言中external,static關鍵字用法

static用法: 在C中,static主要定義全域性靜態變數、定義區域性靜態變數、定義靜態函式。 1、定義全域性靜態變數:在全域性變數前面加上關鍵字static,該全域性變數變成了全域性靜態變數。全域性靜態變數有以下特點。 a.在全域性區分配記憶體。 b.如果沒有初始化,其預設值為

c言中rand()函式的用法筆記

最近在學著用c寫一些小程式,過程中遇到很多問題,在網上查很多大神的講解,以及查閱vs2010的幫助文件。在此做個筆記,以便今後查閱,備忘。感謝無私奉獻講解的大神們! 一、rand() rand()函式用來產生隨機數,但是,rand()的內部實現是用線性同餘法實現的,是偽隨機數,由於週期較長,

C言中extern的用法

1.extern修飾變數或者函式的宣告。 舉例:若a.c中需引用b.c中的變數int v,可以在a.c中宣告extern int v,然後就可以引用變數v;需要注意的是,被引用的變數v的連結屬性必須是外連結(external)的,也就是說a.c要引用到變數v,不

c言中qsort的用法(模擬EXCEL)

排序方法有很多種:選擇排序,氣泡排序,歸併排序,快速排序等。 看名字都知道快速排序是目前公認的一種比較好的排序演算法。因為他速度很快,所以系統也在庫裡實現這個演算法,便於我們的使用。 這就是qsort函式(全稱quicksort)。它是ANSI C標準中提供的,其宣告在std