C語言之資料儲存

2021-09-27 11:18:11 字數 2222 閱讀 8440

c語言中沒有字串型別

void *型別可以儲存位址,但不能進行解引用

數字.字元在記憶體中儲存,以補碼的形式儲存

:由於暫存器寬度大於乙個字 節,那麼必然存在著乙個如果將多個位元組安排的問題

判斷大小端

int islitte()   //是小端返回1,否則返回0

int islitte1()

uu; uu.a = 0x1234578;

if(uu.ch == 0x78)

return 1;

return

}

聯合體:共用體-》記憶體

聯合體所佔的空間:

1)大小足夠容納最寬的成員;

2)大小能被其包含的所有基本資料型別的大小所整除。

union un   //共用乙個記憶體空間

**整形提公升(重點)

對於有符號數提公升他的符號位

對於無符號數提公升0;

%u在記憶體中儲存的就是他的原碼

}//解析:死迴圈;因為對於無符號數 0 下面是 2^32-1;

2.int

main()

printf

("%d\n"

,strlen

(a))

;return0;

}//解析:答案255,-1,-2,……,-128,127,126,……,0,-1

浮點型

浮點型和0比較時是乙個(-0.000001 <= f && f<= 0.000001)

數值=(-1)^s * m * 2^e;

1).ieee 754對有效數字m和指數e,還有一些特別規定。

1≤m<2 ,也就是說,m可以寫成 1.****** 的形 式,其中******表示小數部分存放在尾數中。

2).至於指數e,情況就比較複雜。

e為乙個無符號整數(unsigned int) 這意味著,如果e為8位,它的取值範圍為0~255;如果e為11位,它的 取值範圍為0~2047。但是,科學計數法中的e是可以出現負數的,所以規定,存入記憶體時e的真 實值必須再加上乙個中間數,對於8位的e,這個中間數是127;

指數e從記憶體中取出還可以再分成三種情況:

e不全為0或不全為1

這時,浮點數就採用下面的規則表示,即指數e的計算值減去127(或1023),

得到真實值,再將有效數字m前 加上第一位的1。 比如: 0.5(1/2)的二進位制形式為0.1,由於規定正數部分必須為1,即將小數點右移1位, 則為

1.0*2^(-1),其階碼為-1+127=126,表示為01111110,而尾數1.0去掉整數部分為0,補齊0到23位 00000000000000000000000,則其二進位制表示形式為:

e全為0

這時,浮點數的指數e等於1-127(或者1-1023)即為真實值, 有效數字m不再加上第一位的1,而是還原為 0.******的小數。這樣做是為了表示±0,以及接近於0的很小的數字。

e全為1

這時,如果有效數字m全為在這裡插入**片

c語言之資料拷貝memcpy strcpy

c語言之資料拷貝memcpy strcpy strcpy和memcpy都是標準c庫函式,它們有下面的特點。strcpy提供了字串的複製。即strcpy只用於字串複製,並且它不僅複製字串內容之外,還會複製字串的結束符。已知strcpy函式的原型是 char strcpy char dest,const...

C語言之資料型別

恢復內容開始 在c語言中我們的資料型別分為以下幾大類 1 基本資料型別 int,float,double,char,bool c99中新加的 列舉enum 很多朋友對於enum被定義為是基本型別可能會有些迷惑,但是我們都知道列舉型別的特殊之處就是總能把資料變化為整形資料,我們可以認為列舉就是一種特殊...

C語言之儲存類說明符

作用域 鏈結屬性 儲存時期 儲存型別內容請先參考博文 c語言有5中儲存型別修飾符 autoregisterstaticexterntypedef 下面分別介紹各說明符的用法 extern 表明識別符號具有外部鏈結屬性或者該變數在別處定義 想要理解extern的用法首先要理解c語言的宣告與定義的區別 ...