C語言基礎二 資料型別 常量與變數

2021-08-28 08:52:21 字數 3328 閱讀 9388

1、資料型別:

基本資料型別:

整型  :(unsigned)int(32位系統下佔4個位元組) (unsigned)short(2)    (unsigned)long(4)

字元型:(unsigned)char(1個位元組)

實  型:

單精度  float(4)

雙精度    double(8)

構造資料型別:

陣列 int a[10]

結構體 struct

聯合體 union

列舉型別 enum

指標型別     基本型別 *

空型別   void 

a)void *  通用指標

b)void 函式返回值 不能返回數值

c)void 函式引數  呼叫不需要傳入任何實參

2.常量與變數

2.1.常量:

在執行過程不可改變的量

整型常量:123

1)以0開頭的一系列數字組成8進製:例:0123   3*1+2*8+1*8*8

0 1 2 3 4 5 6 7

2)以0x開頭的一系列數字 16進製制 例:0xff      15+15*16 

0 1 2 3 4 5..9 a(a) b(b) c(c) d(d) e(e) f(f)

ex.用254轉換成16進製制

ex.0100 1111 1111 1101    2進製化成16進製制數 -----》0x4ffd

3)其他的都是十進位制

字元型常量:

在計算機中字元型常量是以ascii儲存,

ascii:每乙個字元對應乙個唯一的整數

1)可列印輸出的

'a' 'b'....

2)不可列印輸出的

以\開始的特殊轉義字元

'\n':換行符  ex.以10進製、8進製、16進製制輸出'\n'

'\r':回車符

'\t':橫向製表符 乙個tab

'\v':縱向製表符

'\?':乙個問號

'\'':輸出單引號

'\"':輸出雙引號

'\\':輸出\

'\ooo'(乙個o代表一位8進製數):輸出這個8進製數對應的ascii對應的符號

a 65 101

'\xhh'(乙個h代表乙個16進製制數):輸出這個16進製制數對應的ascii對應的符號

字串常量:例子"123"以'\0'結束                  

'123'//error

浮點常量:

以小數或者指數形式出現的實數

a)以f(f)結束的float型別的小數   1.0f

b)以l(l)結束的 long double 的小數     1.12l

c)其他的都預設處理為double       12.1

指數形式:

12.2e5   ====》12.2*10的5次方

e/e後面的數表示以10為底的指數 -12.4e-25    *****>-12.4*10(-25)

2.2變數

在執行中可以改變的量

定義變數:資料型別  變數名;

資料型別:合法的型別即可

變數名:合法識別符號(以字母數字下劃線組成,必須以字母、下劃線開頭)

int 3#a;//error

先定義,後使用

變數名:每乙個變數名都會對應乙個乙個位址,在程式編譯執行時,記憶體會給每個變數分記憶體空間

int  a=5;

使用變數的情況:

1)取值:通過變數名找到它對應的記憶體空間,然後把儲存的內容取出來   b=a;

2)存值:通過變數名找到它對應的記憶體空間,然後把值儲存進相應的記憶體空間  b=5;

每個變數名都有2種含義

1)左值:作為儲存位址

2)右值:作為儲存的內容     printf("%d",a);

整型變數:

定義:int a;short a;long a;

1.儲存:以2進製的補碼形式儲存

原碼:正數:最高位是符號位(0),其餘為二進位制數值位

負數:最高位是符號位(1),其餘為二進位制數值位

反碼:正數:就是原碼

負數:符號位不變,其餘取反0->1  1->0

補碼:正數:就是原碼

負數:符號位不變,其餘在原碼形式上取反+1

以8位來表示儲存:

13                           -13

原碼: 0 000 1101           1 000 1101

反碼: 0 000 1101           1 111 0010

補碼: 0 000 1101           1 111 0011

ex.以8bit的形式計算127的原碼、反碼、補碼 

ex.以16bit的形式計算-127的原碼、反碼、補碼 

原碼、反碼、補碼:1000 0000-1=0111 1111

-128補碼   1000 0000 

2.有符號數和無符號數

用8位表示有符號數和無符號數

無符號數的最高位表示數值位

有符號數的最高位表示符號位

-13  1 111 0011:用32位表示乙個負數的補碼

char型別資料的表示範圍:

最大值:0 111 1111

最小值:1 000 0000

-128 - 127

unsigned char:

最大值:1111 1111    255

最小值:0000 0000    0

short型別資料表示範圍

最大值:0 111 1111 1111 1111   printf("%d",0x7fff);32767

最小值:1000 0000  0000 0000    -32768

unsigned short:

最大值:1111 1111 1111 1111 65535

最小值:0000 0000 0000 0000  0

ex.int a=-13;

unsigned int b=a;

printf("%u",b);

3.賦值

長的賦值給短的:int --> char

低位元組直接拷貝,高位元組不要啦

int a=0x12345678;

char b;

b=a;

printf("%0x",b);//

短的賦值給長的:

無符號數:高位元組擴充套件成0 ,低位元組直接拷貝

有符號數:高位元組擴充套件成符號位,低位元組直接拷貝

char c=-3;

printf("%d",c);

printf("%u",c);

4.浮點數的儲存 float a;/double a;

C語言 資料型別 變數 常量

資料型別 c語言中,資料型別是指用來宣告不同型別的變數或函式的系統。變數的型別決定了變數儲存占用的空間。c中的資料型別 1.基本型別 算術型 整數型別和浮點型別。2.列舉型別 算術型 被用來定義在程式中只能賦予其一定的離散整數值得變數。3.void型別 型別說明符 void 表明沒有可用的值。4.派...

C語言資料型別(三) 變數與常量

一 什麼是變數?變數的特點?什麼是變數?其值在其作用域內可以改變的量成為變數。乙個變數應該有乙個名字,在記憶體中佔據一定的儲存空間。變數在使用前必須要定義,每個變數都有自己的位址,變數依據其定義的型別,分為不同型別,如整型變數,字元型變數,浮點型變數,指標型變數等。變數的值可以發生改變,意味著它可以...

go語言 資料型別 變數與常量

資料型別 1 數值型別,字串型別和布林型 2 派生型別 3 型別零值和型別別名 4 型別所佔儲存大小 go語言 資料型別 整型 浮點型 複數 字串和布林型 資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才會申請大記憶體,就可以充分利用記憶體 布林型的值,可以...