tft每日頭條

 > 生活

 > 初學c語言的基本知識

初學c語言的基本知識

生活 更新时间:2025-01-07 20:06:05

很多零基礎小夥伴都沒有仔細整理過成員的基礎知識,對C語言的學習還無從下手,下面分享一套學習資料給大家,包含有系統化的學習路線和視頻教程,知識點内容講解詳細,非常适合準備入門的小夥伴,無償分享,希望對大記得學習有所幫助!

初學c語言的基本知識(c語言基礎知識梳理總結)1

初學c語言的基本知識(c語言基礎知識梳理總結)2

加這裡領取:828339809

算法結構:

1、順序結構、選擇結構、循環結構;

2、循環結構又分為while型、do-while型、for循環結構;

3、程序流程圖;

結構化程序設計方法:

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、全局變量,在函數之外定義的變量稱為外部變量,全局變量可以增加函數間數據聯系的渠道,一般不再必要時不要使用,他在程序的全部執行過程中占用存儲單元,是函數的通用性,使用全局變量會使程序的清晰性降低。還要注意若果同一源文件中,外部變量和局部變量同名,則在局部變量作用範圍内,外部變量被“屏蔽”,不起任何作用。

變量的存儲類别:

(變量值存儲時間)動态存儲方式,在程序運行期間進行分動态的分配存儲空間的方式,靜态存儲方式是指在程序運行期間分配固定的存儲空間的方式;存儲空間分為程序區、靜态存儲區和動态存儲區;全局變量全部放在靜态存儲區中,程序開始時分配空間,完畢時釋放;動态存儲區中存放以下數據:

1、函數形式參數;

2、自動變量;

3、函數調用時的現場保護和返回地址;

在C語言中每個變量和函數都有兩個屬性,是數據類型和數據存儲類型,存儲類别是數據在内存中存儲的方式。

存儲方式分為靜态和動态存儲類,具體包含有四種:

自動的(auto);

靜态的(static);

寄存器的(register);

外部的(extern),

如果不加以聲明,就自認為是auto型就會自動分配存儲空間屬于動态存儲方式。

static聲明局部變量是在函數調用結束後不消失而保留原值,即占用存儲單元不釋放,在下一次調用該函數時,該變量已有值,就是上次函數調用結束時的值。其中需要說明的是在定義局部變量不賦初值的話,則靜态局部變量編譯時自動賦值為0或者空字符,雖然靜态局部變量在函數調用結束後仍然存在,但是其他函數不能引用它的。靜态局部變量主要用在當初始化後,變量隻是被引用而不改變其值。

register變量是C語言中允許将局部變量的值放在CPU中的寄存器中需要時直接從寄存器中取出來參加運算,不必再到内存中提取,但是計算機系統中寄存器數量有限,不能任意定義任意多的存儲器,局部靜态變量不能定義為寄存器變量。

extern聲明外部變量,用以擴展外部變量的作用域。在一個文件中,如果定義之前的函數想引用該外部變量,則應該在引用之前用關鍵字extern對該變量做外部變量聲明。在多文件中,也可以采用extern聲明的辦法進行外部變量聲明。

有時希望某些局部變量隻限于被本文件引用,而不能被其他文件引用,這時就可以采用在定義外部變量時外加一個static,這在程序模塊化設計中加強了通用性。static來聲明一個變量的作用有二個,一個是在聲明對局部變量時。則為該變量分配的空間在整個程序執行期間始終存在;一個是在對全局變量聲明中,該變量的作用域僅限于本文件模塊操作。注意:這些方法同樣适用于函數的聲明。

指針:

指針是指向一片内存空間的地址,指針變量是變量,是存放一片内存空間首地址的變量,我們一般所說的指針都是指針變量。

很多小夥伴學習C語言都覺得指針是很頭疼的一部分,那麼現在福利來了,下方是C語言的全套免費基礎學習教程,内容講解通俗易懂,非常适合小白學習,教程資料中還包含有源碼筆記、實戰項目和電子書籍,節省學習成本的同時還能更加系統化的學習。

C語言/C 編程學習基地【免費公開課】:828339809

初學c語言的基本知識(c語言基礎知識梳理總結)3

初學c語言的基本知識(c語言基礎知識梳理總結)4

指針的定義及賦值:

類型說明 *變量名  列如 int *p;

區别 int *p=NULL 與 *p=NULL

int *p=NULL; //定義指針變量p,并且同時将p的值設置為0x00000000,不是把*p的值設置為0x0000000,這個過程叫做初始化

int *p;*p=NULL; //定義指針變量p,将*p的值設置為NILL,即給p所指向的内存賦值NULL,但是p所指的内存可能是非法的,編譯可能會顯示内存訪問錯誤,那麼做出如下修改,給它一塊合法的内存。

int i=10;int *p=&i;*p=NULL; //這時i中的值由10變成了0,而p值本身沒變,即内存地址沒有改變

指針的大小:

int *P;sizeof(p); //指針的大小根據計算機的位數确定,32位機大小為4個字節,64位機大小為8個字節。

指針運算:

需要注意的是指針的類型, 1加的是一個指針類型的大小。

int a[10];int *p=&a; // 1,加了sizeof(int)*1個字節,而不是加sizeof(int[10])*1個字節

指針的使用類型

指針形式

數組形式:

int a[10];int *P=a;

p[0]=1; //指針的數組形式

*(p 1)=2; //指針的指針形式

通過指針修改内容的彙編過程:

1、找到指針變量的地址

2、通過指針變量的地址,找到内容的地址

3、通過地址找到内容

4、修改内容

學習完了趕緊去練習吧!如果覺得這篇知識總結對你有所幫助的話,歡迎進入下方的學習交流群與大家讨論分享,很多志同道合的小夥伴在群裡分享學習經驗和方法,還能對今天學習的内容做交流,更重要的是有問題都能請教群裡的大神,學習氛圍相當不錯,趕快加入進來一起學習吧!

C語言/C 編程學習基地【資源共享、免費公開課】:828339809,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved