一、C語言數據類型
ok,如我們所知,C語言作為大學工科專業的必學課程,其重要性不言而喻;它為我們提供了豐富的數據類型,所以它很適合程序員來編寫 數據庫 ,如DB2、Oracale都是C語言編寫的。
那么C語言具體又有哪些類型呢?且看如下分解:
1.基本數據類型
1)整型 int (long int , long long int)
2)浮點型?
單精度浮點型 float
雙精度浮點型 double
3)字符型? char
2.構造類型
1)數組 array?
2)結構體 struct
3)共用體 union
4)枚舉 enum
3.指針類型 void *
4.空類型 void?
那么首先,我們要關注的就是基本數據類型,在下面給出了在32/64位編譯器環境下,基本數據類型所占用的存儲空間:
類型 名稱 存儲空間
int ?整型 2個字節(short 2 ; long ?4/8)
char ? ?字符型? 1個字節
float ? 單精度 ?4個字節
double 雙精度 ? ?8個字節
void * ?指針 ? ? ?4/8個字節
二、變量
跟其他語言一樣,C語言中用變量來存儲計算過程使用的值,任何變量都必須先定義類型再使用。 為什么一定要先定義呢? 因為變量的類型決定了變量占用的存儲空間, 所以定義變量類型就是給變量分配適當的存儲空間,以便存儲數據。For example ,if you have a char number ,ok, just allocate it for 1 byte, that is enough , ?it is unnecessary to get it more.
那么,如何定義一個變量呢?
例如: int a = 10; 如何理解這句代碼呢? 為int 類型 的變量 a 分配 一個 4 個字節的內存,并將10賦值給名為變量a的內存;所以,我們不難得出如下的 結論:
定義變量 : 數據類型 變量名 初始值?
要注意的
1.?= 是 賦值符號;
2. 變量名的命名規則(字母、數字、下劃線可用做變量名(但是數字不能開頭),見名知意,不能和系統保留字相同,不同重復定義)
something added:
1.局部變量的使用跟其他語言的區別
1>其他語言中,你聲明了一個局部變量后,如果沒有經過初始化賦值就使用該變量,編譯器直接報錯;
2>在C語言中,1的情況不會發生;但是這樣做是很危險的,
如:
int main(){
int b;?
printf("%d",b);}? 大多數人應該覺得變量b打印出來的應該是0,其實不是。因為系統會隨意給變量b賦值,得到的不是準確的數據。
所以,局部變量還是必須先進行初始化賦值,然后再使用,這樣才是最安全的做法。
3>但是如果是全局的int型變量,系統會默認賦值為0;
2.char的取值范圍: ASCII碼字符 或者 -128~127的整數
3.char只能存儲一個字符
漢字或者字符串需要用字符數組來存儲,因為一個漢字占了2個字符。
三、運算
*除法: 在計算機中兩個整型變量相除,結果只取整數部分,而不是四舍五入;
*取余運算:
1.也叫模運算;
2.%兩邊參與運算的數必須是整數;
3.取余運算的正負結果只跟% 左邊 的數值有關
* 自加(減)運算?
10++; ? ? // 這個怎么破 ? ??
// 常量有能進行自加運算啦 ?,for example ?:
a++; ?-> a = a + 1;
10++; -> 10 = 10 + 1 ; ? ? ?這顯然是不合理的!
*有點意思~:
看這兩句:
int a = 6 /4; ? ? 結果 ?a = 1;
float a = 6 / 4; ?結果 a = 1.000000; 而不是我們可能會猜想的1.500000; ?-> 所以參與運算的數值結果與參與運算的數的類型有關;即:
float a = (float) 6 / 4;? 結果就是 1.500000了 , 果然有點意思吧~~
?
|| 需要補充(算術運算符、關系運算符、邏輯運算符的優先級順序)
四、printf、scanf函數(略,getchar()可以吸收系統中的回車,關于getcha函數記得有點模糊了)