位元組資料和位址之間的關係

2021-08-26 23:01:50 字數 899 閱讀 1336

(bit)    位元  最小的儲存單位

位元組(byte)    習慣用b來表示   1byte=8bit

int   a;     int   *p=&a;   a=1  &a=0x23      int  *   是一種位址型別    p=0x23   *p=1 

當 乙個全域性變數放在標頭檔案中被多個.c檔案引用時,編譯不會有錯,但會導致「符號被多重定義",需要加上static使其變為內部鏈結,將其變為多個同名不同義的定義

union 中各成員占用的記憶體從同一位址開始,占用的大小可能是最大的變數型別長度  被稱為 "共同體"     成員中含有long 和double  長度為8,long和float 長度為4     。。。

malloc 和free一同使用,malloc分配空間,free釋放空間        dest=malloc(..)    free(dest) //防止產生記憶體洩漏     dest=null //防止產生野指標

stack  棧   空間有限 由系統統一分配    在編譯期對變數和函式的分配記憶體都在棧上進行       

heap  堆   malloc函式手動分配  位址大      

int  * const p    位址為常量  位址內容可變       int   const *p   和   const   int   *p    相同,都是位址內容不可變,位址可變    區別在於const 修飾的是位址還是內容

int a[5]=  &a+1 是位址上再加20,而a+1是加4       a是陣列的首位址是&a[0]  而&a是代表整個陣列長度

被volatile 修飾的變數表示會被意想不到的改變,所以每次使用這個變數的時候都會重新取值,而不是使用備份。通常是多個執行緒共用的變數    狀態暫存器    

位元組陣列和字元之間互換

定義string變數為str,記憶體流變數為ms,位元陣列為bt 1.字串轉位元陣列 1 byte bt system.text.encoding.default.getbytes 字串 2 byte bt convert.frombase64string 字串 2.字串轉流 1 memorystr...

位元組陣列 base64, 流之間關係

1.字串轉換成位元組陣列 byte array encoding.utf8.getbytes 你好 2.位元組陣列轉換成base64字串 string base64 convert.tobase64string array 3.base64string轉換成位元組陣列 byte bitarray c...

資料型別位元組數

一 程式執行平台 不同的平台上對不同資料型別分配的位元組數是不同的。個人對平台的理解是cpu os compiler,是因為 1 64位機器也可以裝32位系統 x64裝xp 2 32位機器上可以有16 32位的編譯器 xp上有tc是16位的,其他常見的是32位的 3 即使是32位的編譯器也可以弄出6...