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語言 資料型別 整型 浮點型 複數 字串和布林型 資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才會申請大記憶體,就可以充分利用記憶體 布林型的值,可以...