C語言是當代人學習及生活中的必備基礎知識,應用十分廣泛,下面為大家帶來C語言基礎知識梳理總結,C語言零基礎入門絕對不是天方夜譚!
算法結構:
一、順序結構、選擇結構、循環結構;二、循環結構又分為while型、until型、for循環結構;程式流程圖;
結構化程式設計方法:
(1)自頂向下;(2)逐漸細化;(3)子產品化設計;(4)結構化編碼。
資料類型:
常量:常量包括字面常量、直接常量和符号常量;
變量:C語言規定标志符隻能由字母、數字和下劃線三種字元組成,且第一個字元必須是字母或者下劃線;必須壓迫先定義後使用;每一個變量被定義以确定類型後,在編譯時就能為其配置設定相應的存儲單元;
整數類型:整數常量有十進制、八進制和十六進制;“%d”
整形變量:資料在記憶體中存放形式是以二進制形式存放;有int型、short int型和long int型,無符号整型變量的範圍是-32768—32767,有符号型為0~65535.通常把long定義為32位,把short定義為16位,int可以是32位也可以為16位,這都主要取決于機器字長。
實型常量的表示方法:(1)十進制,0.0;(2)指數形式,123e3
實型變量:實數型資料在記憶體中的存放形式,一般在記憶體中占4個位元組,分成整數部分和小數部分存放。實型變量分為float型、double型long double型。實型資料會存在舍入誤差。
實型常量的類型:C編譯系統将實型常量作為雙精度來處理。
字元型數組:(一)字元常量:轉義字元(\n——換行,\t——tab,\r——回車,\f——換頁,\b——倒退,\ddd——1到3位8進制的數代表的字元)
(二)字元變量:字元資料存儲形式實際是以ASCII碼存儲。“%c”
字元串常量:雙撇号括起來的一系列字元序列。
C的運算符有以下幾種:
1、算術運算符(+ - * / %)結合方向自左向右
2、關系運算符(> < =="">= <= !="">
3、邏輯運算符(! && ||)
4、位運算符(<>> ~ | ^ &)
5、指派運算符(=及符号擴充指派運算符)
6、條件運算符(? : )
7、逗号運算符( , )
8、指針運算符(* &)
9、求位元組運算符(sizeof)
10、強制類型轉換運算符((類型))
11、分量運算符( . ->)
12、下标運算符([])
13、其他
控制語句:
完成一定的控制功能。
1、if()~else~
2、for()~
3、while()~
4、do~while()
5、continue
6、break
7、switch
8、goto
9、return
字元資料的輸入輸出:
1、putchar()輸入字元變量
2、getchar()隻能接受一個字元
格式輸入輸出:
1、printf(%d—整型,%c—字元型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)
2、scanf(格式控制,位址清單)
數組
一維數組的定義:類型說明符 數組名【常量表達式】;先定義後引用;一維數組初始化時可以隻對一部分元素初始化,在對全部數組元素初始化的時候可以部規定長度;但是若被定義的數組長度與提供的初始值不一樣時,則數組長度不能省略。
二維數組的定義:類型說明符 數組名【常量表達式】【常量表達式】C語言中存放二維數組是先存放第一行的元素,緊接着是第二行,其實也是以一維的方式存放。如果初始化時能指定所有元素的初始值,第一維大小可以省略,但是第二維不能省略。
字元數組:定義和初始化跟數組差不多,隻是需要加單引号。字元和字元串結束标志,C語言規定,以\'\0’代表。
字元串處理函數:
1、puts()将一個字元串輸出到終端
2、gets()從終端輸入一個字元串到字元數組,并且得到一個函數值。
3、strcat()連結兩個字元數組中的字元串。
4、strcpy()字元串複制函數。
5、strcmp()比較字元串作用。
6、strlen()測試字元串長度的函數不包括“\0”
7、strlwr()将字元串中的大寫字母轉換為小寫字母。
8、strupr()将字元串中的小寫字母轉換為大寫字母。
函數
(1)一個源程式由多個函數組成。
(2)C程式的執行從main()函數開始;
(3)所有函數都是平行的;
(4)函數分類;可以分為标準和自定義,還可以分為有參函數和無參函數。
函數定義的一般形式:
(1)類型标志符 函數名()
{
聲明部分
語句
}
(2)類型标志符 函數名(形式參數清單)
{
聲明部分
語句
}
關于形參和實參的說明:
(1) 在定義函數中指定的形參,在未出現函數調用時,他們并不占用記憶體中的存儲單元,隻有發生調用時,才會配置設定記憶體。
(2) 實參可以是常量、變量或者表達式;有時傳遞的時位址;
(3) 在被定義中,形參必須指定類型;
(4) 實參與形參的類型應相同或指派相容;
(5) C語言規定,實參變量對形參變量的資料傳遞是“值傳遞”,即單向傳遞,隻有實參傳遞給形參,而不能由形參傳遞給實參。
函數的傳回值:
希望通過函數調用使主調函數得到一個确定的值。
(1)函數的傳回值是通過函數中的return語句擷取的。
(2)函數值的類型;
(3)如果函數值的類型和return語句中表達式的值不一樣,則以函數類型為準。
(4)如果調用函數中沒有return語句,并不帶回一個确定的使用者需要的值,函數不是不帶回值,而隻是不帶回有用的值,帶回一個不确定的值。
(5)如不需要帶回任何值,用void。
函數的調用:
調用方式1、函數語句;2、函數表達式;3、函數參數。
被調用的函數的聲明:
一個函數調用另一個函數所具備的條件:
1、首先被調用的函數必須是已經存在的函數;
2、如果使用庫函數,一般應該在本檔案開頭用#include指令将調用有關庫函數時在所需要用到的資訊“包含”到本檔案中。.h檔案是頭檔案所用的字尾。
3、如果使用使用者自己定義的函數,而且該函數與使用它的函數在同一個檔案中,一般還應該在主調函數中對被調用的函數做聲明。
4、如果被調用的函數定義出現在主調函數之前可以不必聲明。
5、如果已在所有函數定義之前,在函數的外部已做了函數聲明,則在各個主調函數中不必多所調用的函數在做聲明。
局部變量和全局變量:
(一)局部變量在一個函數内部定義的變量是内部變量,它隻是在本函數範圍内的有效,主函數也不能使用其它函數中定義的變量;不同函數中可以使用相同的名字的變量,他們代表不同的對象,互不幹擾;形式參數也是局部變量;在一個函數内部,可以在複合語句中定義變量,這些變量隻在本複合語句中有效,這種複合句也可以稱為“分程式”或“程式塊”;
(二)全局變量,在函數之外定義的變量稱為外部變量,全局變量可以增加函數間資料聯系的管道,一般不再必要時不要使用,他在程式的全部執行過程中占用存儲單元,是函數的通用性,使用全局變量會使程式的清晰性降低。還要注意若果同一源檔案中,外部變量和局部變量同名,則在局部變量作用範圍内,外部變量被“屏蔽”,不起任何作用。
———————————————————————————————————————--------------------------------------------------------------------------
變量的存儲類别:
(變量值存儲時間)動态存儲方式,在程式運作期間進行分動态的配置設定存儲空間的方式,靜态存儲方式是指在程式運作期間配置設定固定的存儲空間的方式;存儲空間分為程式區、靜态存儲區和動态存儲區;全局變量全部放在靜态存儲區中,程式開始時配置設定空間,完畢時釋放;動态存儲區中存放以下資料:
1、函數形式參數;
2、自動變量;
3、函數調用時的現場保護和傳回位址;在C語言中每個變量和函數都有兩個屬性,是資料類型和資料存儲類型,存儲類别是資料在記憶體中存儲的方式。
存儲方式分為靜态和動态存儲類,具體包含有四種:自動的(auto),靜态的(static),寄存器的(register),外部的(extern),如果不加以聲明,就自認為是auto型就會自動配置設定存儲空間屬于動态存儲方式。
Static聲明局部變量是在函數調用結束後不消失而保留原值,即占用存儲單元不釋放,在下一次調用該函數時,該變量已有值,就是上次函數調用結束時的值。其中需要說明的是在定義局部變量不賦初值的話,則靜态局部變量編譯時自動指派為0或者空字元,雖然靜态局部變量在函數調用結束後仍然存在,但是其他函數不能引用它的。靜态局部變量主要用在當初始化後,變量隻是被引用而不改變其值。
Register變量是C語言中允許将局部變量的值放在CPU中的寄存器中需要時直接從寄存器中取出來參加運算,不必再到記憶體中提取,但是計算機系統中寄存器數量有限,不能任意定義任意多的存儲器,局部靜态變量不能定義為寄存器變量。
Extern聲明外部變量,用以擴充外部變量的作用域。在一個檔案中,如果定義之前的函數想引用該外部變量,則應該在引用之前用關鍵字extern對該變量做外部變量聲明。在多檔案中,也可以采用extern聲明的辦法進行外部變量聲明。有時希望某些局部變量隻限于被本檔案引用,而不能被其他檔案引用,這時就可以采用在定義外部變量時外加一個static,這在程式子產品化設計中加強了通用性。
Static來聲明一個變量的作用有二個,一個是在聲明對局部變量時。則為該變量配置設定的空間在整個程式執行期間始終存在;一個是在對全局變量聲明中,該變量的作用域僅限于本檔案子產品操作。
注意:這些方法同樣适用于函數的聲明
參考文本
學習視訊資料:http://www.makeru.com.cn/live/1392_1164.html?s=143793