C语言基础小斋
一、C語言數(shù)據(jù)類型
ok,如我們所知,C語言作為大學(xué)工科專業(yè)的必學(xué)課程,其重要性不言而喻;它為我們提供了豐富的數(shù)據(jù)類型,所以它很適合程序員來編寫 數(shù)據(jù)庫 ,如DB2、Oracale都是C語言編寫的。
那么C語言具體又有哪些類型呢?且看如下分解:
1.基本數(shù)據(jù)類型
1)整型 int (long int , long long int)
2)浮點(diǎn)型?
單精度浮點(diǎn)型 float
雙精度浮點(diǎn)型 double
3)字符型? char
2.構(gòu)造類型
1)數(shù)組 array?
2)結(jié)構(gòu)體 struct
3)共用體 union
4)枚舉 enum
3.指針類型 void *
4.空類型 void?
那么首先,我們要關(guān)注的就是基本數(shù)據(jù)類型,在下面給出了在32/64位編譯器環(huán)境下,基本數(shù)據(jù)類型所占用的存儲空間:
類型 名稱 存儲空間
int ?整型 2個(gè)字節(jié)(short 2 ; long ?4/8)
char ? ?字符型? 1個(gè)字節(jié)
float ? 單精度 ?4個(gè)字節(jié)
double 雙精度 ? ?8個(gè)字節(jié)
void * ?指針 ? ? ?4/8個(gè)字節(jié)
二、變量
跟其他語言一樣,C語言中用變量來存儲計(jì)算過程使用的值,任何變量都必須先定義類型再使用。 為什么一定要先定義呢? 因?yàn)樽兞康念愋蜎Q定了變量占用的存儲空間, 所以定義變量類型就是給變量分配適當(dāng)?shù)拇鎯臻g,以便存儲數(shù)據(jù)。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.
那么,如何定義一個(gè)變量呢?
例如: int a = 10; 如何理解這句代碼呢? 為int 類型 的變量 a 分配 一個(gè) 4 個(gè)字節(jié)的內(nèi)存,并將10賦值給名為變量a的內(nèi)存;所以,我們不難得出如下的 結(jié)論:
定義變量 : 數(shù)據(jù)類型 變量名 初始值?
要注意的
1.?= 是 賦值符號;
2. 變量名的命名規(guī)則(字母、數(shù)字、下劃線可用做變量名(但是數(shù)字不能開頭),見名知意,不能和系統(tǒng)保留字相同,不同重復(fù)定義)
something added:
1.局部變量的使用跟其他語言的區(qū)別
1>其他語言中,你聲明了一個(gè)局部變量后,如果沒有經(jīng)過初始化賦值就使用該變量,編譯器直接報(bào)錯(cuò);
2>在C語言中,1的情況不會發(fā)生;但是這樣做是很危險(xiǎn)的,
如:
int main(){
int b;?
printf("%d",b);}? 大多數(shù)人應(yīng)該覺得變量b打印出來的應(yīng)該是0,其實(shí)不是。因?yàn)橄到y(tǒng)會隨意給變量b賦值,得到的不是準(zhǔn)確的數(shù)據(jù)。
所以,局部變量還是必須先進(jìn)行初始化賦值,然后再使用,這樣才是最安全的做法。
3>但是如果是全局的int型變量,系統(tǒng)會默認(rèn)賦值為0;
2.char的取值范圍: ASCII碼字符 或者 -128~127的整數(shù)
3.char只能存儲一個(gè)字符
漢字或者字符串需要用字符數(shù)組來存儲,因?yàn)橐粋€(gè)漢字占了2個(gè)字符。
三、運(yùn)算
*除法: 在計(jì)算機(jī)中兩個(gè)整型變量相除,結(jié)果只取整數(shù)部分,而不是四舍五入;
*取余運(yùn)算:
1.也叫模運(yùn)算;
2.%兩邊參與運(yùn)算的數(shù)必須是整數(shù);
3.取余運(yùn)算的正負(fù)結(jié)果只跟% 左邊 的數(shù)值有關(guān)
* 自加(減)運(yùn)算?
10++; ? ? // 這個(gè)怎么破 ? ??
// 常量有能進(jìn)行自加運(yùn)算啦 ?,for example ?:
a++; ?-> a = a + 1;
10++; -> 10 = 10 + 1 ; ? ? ?這顯然是不合理的!
*有點(diǎn)意思~:
看這兩句:
int a = 6 /4; ? ? 結(jié)果 ?a = 1;
float a = 6 / 4; ?結(jié)果 a = 1.000000; 而不是我們可能會猜想的1.500000; ?-> 所以參與運(yùn)算的數(shù)值結(jié)果與參與運(yùn)算的數(shù)的類型有關(guān);即:
float a = (float) 6 / 4;? 結(jié)果就是 1.500000了 , 果然有點(diǎn)意思吧~~
?
|| 需要補(bǔ)充(算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符的優(yōu)先級順序)
四、printf、scanf函數(shù)(略,getchar()可以吸收系統(tǒng)中的回車,關(guān)于getcha函數(shù)記得有點(diǎn)模糊了)
轉(zhuǎn)載于:https://www.cnblogs.com/renlovej/p/4439934.html
總結(jié)
- 上一篇: oppo手机如何用蓝牙传腾讯视频
- 下一篇: 郑少秋和阿兰德龙,俩人颜值几几开?