C基礎 C開始

2021-07-01 18:32:24 字數 4955 閱讀 8317

#include int main(void)
#include int main(void)
#include void butler(void); //函式原型 

int main(void)

void butler(void)

#include int main(void)
/**

* 整數:整數是沒有小數部分的數

* 例如 2,-23和2456,而3.14,0.22和2.000都不是整數 

* * 浮點數:浮點數和數學中的實數差不多

* 例如:2.75、3.16e7、7.00和2e-8都是浮點數,但是7不是浮點數 

* * 整數和浮點數的儲存方案不同 

* 計算機把浮點數分成小數部分和指數部分來表示,而且分開儲存這兩部分。 

* 例如 7.0可以寫成0.7e1,0.7是小數部分,1是指數部分。當然計算機是用二進位制來儲存和2的冪進行儲存。 

* * 整數和浮點數的區別 

* 1、整數沒有小數部分,浮點數有小數部分。 

* 2、浮點數可以表示的範圍比整數大。

* 3、對於一些算數運算(如,兩個很大的數相減),浮點數損失的精度更多。  

* 4、因為在任何區間內(如,1.0到2.0之間)都存在無窮多個實數,所以計算機的浮點數不能表示區間內所有的值。 浮點數只有實際值的近似數。 

*  例如,7.0可以儲存為6.99999。 

* 5、過去浮點數運算比整數運算慢,現在的cpu都支援浮點運算器,縮短了速度上的差別。 

* * 基本資料型別

* 1、int型別: 必須是整數,int型別是有符號型別,正整數、負整數或零。 取值範圍由計算機系統而定。 

* int型別的最小取值範圍是(16位):-32768~32767 

* * int型別常量 :21、32、14、94這樣的數值都是整形常量或整型字面量。c語言把不含小數點或指數的數值稱為整數。 

* 十六進製制表示:字首0x或0x,例如,十進位制16用十六進製制表示為0x10或0x10 顯示十六進製製用 %x  

* 八進位制表示:字首0,例如,十進位制16的八進位制表示為020 顯示八進位製用 %o

* 顯示各進製數的字首0,0x或0x 用%#o,%#x,%#x表示。 

* * 2、short int型別(短整型)占用儲存空間可能比int型別少,簡寫為short

** 3、long int 或long 占用的儲存空間比int可能大。 

* * 4、long long int 或long long 占用的儲存空間可能比long大,適合更大的數,至少占用64位。 

* * 5、unsigned int 或unsigned 適合非負數的場合。 

*  * 6、signed 適合有符號的場合,符號就是正負 ,預設不加 unsigned就表示 signed,所以int 和signed int一樣。 

* * 7、long常量和 long long常量 

* 超出int型別編譯器就會視為long型別,超出long型別就會視為 unsigned long型別,如果超出unsigned long型別就會視為long long型別或unsigned long long型別。 

* 把乙個較小的值儲存位long型別就在末尾加上l或l,如果long的無符號常量就末尾加上ul。也可以用在八進位制或十六進製製上 020l,0x10l。 

** 八進位制和十六進製制視為int型別,如果不夠大,將嘗試使用unsiged int型別,以此類推long ,unsiged long 等型別。 

* * 8、列印多種型別的值 

* %u列印unsigned int型別的值。 

* %ld列印long型別的值 。 

* %lld表示列印long long 型別的值。

* %lx列印以十六進製制表示long型別的值。

* %lo列印以八進位制表示long型別的值。

* %hd 列印以十進位制顯示short型別的值

* %ho列印以八進位制表示short型別的值。

* h和l字首都可以和u一起使用,u表示 unsigned,例如:%lu表示unsigned long。 

* * 9、char字元型別 

* char是整數型別,因為char儲存的是整數而不是字元,計算機使用數字編碼表示字元,既用特定的整數表示特定的編碼,美國最常用的編碼是ascii碼,

* 例如字母a 實際儲存的是數字65。 

* char被定義為8位的儲存單元,也就是乙個位元組。 

* * printf列印字元用%c 

* * 有的編譯期把char型別表示為有符號型別,範圍是-128~127,有的編譯期把char型別表示為 無符號型別,範圍是0~255。 

* * 10、——bool型別 ,c99新增了_bool型別 

* 布林型別,1表示true,0表示false 

* * 11、可移植型別  stdint.h 和inttypes.h 

* 某些型別名在不同的作業系統中是不同的,c99新增了兩個標頭檔案 stdint.h 和inttypes.h 確保c語言的型別在各系統中功能相同。 

* stdint.h中定義了很多態別名,例如int32_t 表示32位的有符號整數型別 ,在使用32位的系統中會把int32_t作為int的別名。不同的系統可以定義相同的型別名。例如, 

* int 為16位,long為32位的系統會把int32_t作為long的別名。 然後使用int32_t型別編寫程式,幷包含標頭檔案 stdint.h時,編譯器會把int或long替換成與當前系統匹配的型別。 

* * stdint.h中的型別分為三種型別: 

* (1)精確寬度整數型別:位是固定的,例如int32_t 整數型別的寬度正好是32位。 

* (2)最小寬度型別:一些型別名保證所表示的型別一定是至少有指定寬度的最小整數型別,例如int_least8_t是可容納八位有符號整數值的型別中寬度最小的型別的乙個別名。如果

*      某些系統的最小整數型別是16位,可能不會定義int8_t型別,儘管如此,該系統仍可以使用int_least8_t型別(意思就是最少是8位,可以比8位大)。但是可能把

*      該型別實現為16位整數型別。 

* (3) 最快最小寬度型別:可以使計算速度達到最快。例如int_fast8_t被定義為系統中對8位有符號值而言運算最快的整數型別的別名。 

* * inttypes.h 中提供了可移植型別的輸入輸出。 

* 例如列印int32_t的值,有些定義使用%d,有的定義使用%ld,這種情況提供了一些字串巨集來顯示可移植型別。例如inttypes.h標頭檔案中定義了 

* prid32字串巨集,代表列印32位有符號值的合適轉換說明(如d或l)。 

** 12、float、double和long double 都是浮點數型別 

* 浮點數可以使用科學記數法或小數表示,小數表示322.56,科學記數法3.2256e2。 

* * float型別至少能表示6位有效數字,也就是必須精確到小數點後6位有效數字33.333333。且取值範圍至少是10e-37 ~ 10e37 ,通常系統儲存乙個浮點數需要32位,其中

* 8位用來表示指數的值和符號,剩餘24位用於表示非指數部分及其符號 。 

** double型別(雙精度), double型別和float型別的最小取值範圍相同,但至少必須能表示10位有效數字,一般double用64位儲存而不是32位。 

** long double 用來滿足比double更高精度的要求。 

** 浮點型常量:3.14159 ,-1.56e+32,2.87e-3, .2 ,4e16 , .8e-5 , 100.

** 預設情況下編譯期認為浮點數是double型別的精度,但是在浮點數末尾加上f或f就變成float型別了。 

* * 列印浮點數:一般用%f,列印帶e的科學記數法方式需要使用%e 。 

* * c99標準新增了一種新的浮點型常量格式,用十六進製制表示浮點型常量,即在十六進製制數前加上十六進製制字首0x或0x,用p或p分別表示e或e,

* 用2的冪代替10的冪。例如: 0xa.1fp10 。 

* *  

* 13、複數和虛數型別 

* 三種複數型別:float_complex,double_complex ,long double_complex 。 float_complex型別的變數應該包兩個float型別的值,分別表示複數的實部與虛部。 

* 三種虛數型別:float_imaginary,double_imaginary,long double_imaginary。  

* * 14、型別的大小 ,不知道系統中占用多少位元組可以sizeof查詢一下 

* sizeof檢視型別的大小,例如檢視int型別的大小sizeof(int); ** 

* 15、重新整理緩衝區 

* 有時候printf()列印有時候不能馬上輸出,是因為內容還在緩衝區,用fflush重新整理就可以列印出來了。 **/

#include #include #include int main(void)
/**

1、字串

是乙個或多個字元的序列。 

例如:"zing went the strings of my heart!"

雙引號不是字串的一部分,而是告訴編譯期中間是字串。 

2、char型別陣列和null字元 

c語言沒有專門儲存字串的變數型別,字串被儲存在char陣列中,陣列時連續的儲存單元。

字串中的字元被儲存在相鄰的儲存單元中,每個單元儲存乙個字元,陣列末尾位置儲存\0表示空字元,用來標記字串的結束。

空字元不是數字0,它時非列印字元,其ascii碼值是(或等價於)0。c中的字串一定以空字元結束,這就意味著陣列的容量比實際儲存的字串的字元數多1。

*/

#include #include //提供strlen()函式的原型 

#define density 62.4 //人體密度

int main(void)

C 學習從基礎開始 變數篇

4 浮點型 float double 5 高精度小數 decimal 6 布林型 bool 2.列舉型別 enum e3.結構體型別 struct s4.空型別 null 5.類class c6.介面 inte ce i 7.陣列 1 一維陣列 int 2 二維陣列 int 8.委託 delegat...

從零開始學C 基礎04

原創 by 小萬萬吶 先讓我們用乙個小題目來複習一下上次學過的東西 鞏固複習 考慮下面這段 include using namespace std int main cout b return 0 陣列的定義 為了在程式中代指乙個 東西 我們引入了變數的概念,而當我們需要代指許多個東西時,我們就引入...

開始學習C

1.c 之父bjarne stroustrup c 程式設計 內容精闢深刻,但要求較高。2.c primer 二 入門程式 int main return 0 os從main開始執行,main函式的返回值為狀態指示器,為0時表示成功執行,非0返回值有os定義的含義。訪問main函式返回值的方式與系統...