Linux C編程第零章 掌握 C 語言所需的基礎知識(linux系統)

      網友投稿 949 2025-04-04

      C 編程語言是在 1970 年代中期開發的,但它仍然被認為是所有編程語言之母。它支持多種功能,并且足夠強大,可以直接與硬件單元和內核進行交互。本 C 編程教程涉及,

      Brief History of C Programming Language

      Datatypes and Variables

      First C Program

      Loops in C Programming

      Conditional Statements in C Programming

      Data Structures in C Programming

      Strings

      Functions

      Structure and Union

      Important Interview Questions

      C 編程語言簡史

      C 由Dennis Ritchie于 1972 年在貝爾實驗室(美國)開發。它是一種通用的、結構化的、獨立于機器的、簡單且靈活的編程語言。它主要是作為一種系統編程語言開發的,用于編寫操作系統。

      C編程語言的特點

      高級語言

      C在其庫和內置功能的情況下提供了強大的抽象,使其獨立于機器。足以開發內核、驅動等系統應用。

      結構化語言

      C 語言支持結構化編程,其中包括函數的使用。函數降低了代碼復雜度并且完全可以重用。

      豐富的庫

      與其前輩不同,C 語言結合了多個內置算術和邏輯函數以及許多內置庫,使開發更加快捷方便。

      可擴展

      C語言是高級語言,也可以升級。因此,編程語言被認為是可擴展的,就像任何其他高級語言一樣。

      遞歸

      C 語言支持涉及遞歸的函數回溯。在遞歸過程中,一個函數在另一個函數內被多次調用。

      指針

      C 使用戶能夠使用指針直接與內存交互。我們在內存、結構、函數、數組、堆棧等中使用指針。

      Faster

      C 語言帶有最少數量的庫和內置函數,這使得編譯和執行時間更少并且系統面臨低開銷。

      內存管理

      C 提供了同類中最好的內存管理。它可以動態分配和釋放內存。所述的malloc(),釋放calloc(),realloc()的函數用于分配動態內存和free()函數用于在任何時間釋放已使用的內存。

      數據類型和變量

      用C數據類型大致分為4類,如下所示。

      基本數據類型

      基本數據類型被認為是 C 必須提供的最基本和主要的數據類型。屬于基本數據類型的數據類型如下。

      派生數據類型

      由派生類型是通過使用一個或更多個基本形成類型組合使用。它們????是其功能在 C 庫中預定義的對象類型。

      函數類型

      指針類型

      數組類型

      結構類型

      聯合類型

      枚舉數據類型

      枚舉數據類型用于在 C 編程語言中聲明整型常量,以便整型常量名稱易于記憶和維護。關鍵字enum用于聲明枚舉的數據類型。

      示例:枚舉插頭{on = 1, off = 0};

      空數據類型

      void 數據類型是一種空數據類型,用作 C 中不返回值的函數的返回類型。

      例子:

      void??函數(int?n)

      int 函數(void)

      C 中的變量

      變量定義為保留的內存空間,用于存儲確定數據類型的值。Variable 的值不是常數,而是允許更改。C中主要支持五種類型的變量。

      局部變量

      全局變量

      靜態變量

      自動變量

      外部變量

      局部變量

      任何在代碼塊或函數內部聲明且作用域限于該特定代碼塊或函數的變量都稱為局部變量。

      //例子

      void Edureka() { int Local_variable=10; }

      全局變量

      任何在代碼塊或函數外部聲明并具有整個程序范圍并允許任何函數更改其值的變量稱為全局?變量。

      //例子

      int Global_variable=10; void Edureka() { int Local_variable=20; }

      靜態變量

      使用關鍵字static聲明的任何變量都稱為靜態變量。靜態變量在程序的整個執行過程中保留聲明的值,并且不會在多次函數調用之間改變。

      //例子

      void Edureka() { int Local_variable =10;// static int Static_variable =10; Local_variable=Local_variable+1; Static_variable =Static_variable+1; printf("%d,%d",x,y); }

      自動變量

      可以使用關鍵字auto聲明自動變量。默認情況下,所有用 C 語言聲明的變量都是自動變量。

      //例子

      void main() { int Local_variable=10; //(automatic default) auto int auto=20; //(automatic variable) };

      外部變量

      外部變量使用extern關鍵字聲明。我們可以通過使用外部變量在多個 C 源文件中共享一個變量。

      //例子

      extern external=10;

      讓我們執行我們的第一個 C 程序。

      第一個 C 程序

      在本 C 編程教程中,我們將了解C 程序的基本結構。任何基本的 C 程序都包含以下部分

      預處理器指令

      預處理器指令在每個 C 程序的開頭用特殊字符# 聲明。它們被定義為在編譯過程中由 C 編譯器調用和編譯的預定義函數或宏程序。

      函數

      C程序中的函數被定義為主程序的細分程序。函數提供代碼可重用性并降低代碼復雜性。

      變量

      變量?被定義為一個名稱,用于在 C 程序中存儲值。C?中使用的每個?變量都有一個特定的數據類型,它決定了?變量?內存的大小和布局。

      語句和表達式

      語句只不過是我們提供給計算機進行編譯的指令,而另一方面,表達式被認為是產生結果值的數學或邏輯語句。

      注釋

      注釋是開發人員在代碼中編寫的消息,用于方便理解編程時使用的代碼的邏輯。編譯器不會編譯注釋。注釋寫在?//或/* */ 中。

      現在讓我們執行我們的第一個 Hello World 程序。

      #include int main(){ printf("Hello World"); return 0; }

      //輸出

      Hello World

      C 編程中的循環

      C 中的循環被定義為一種編程語句,旨在執行特定代碼段特定次數或直到滿足提供的特定條件。C 語言中主要有三循環語句。

      For 循環

      for循環在?C程序是一個控制流語句,它允許你執行特定代碼段,用于有限數量的迭代。for 循環具有三個參數,即?初始化變量、計數器變量?和?增量/減量變量。

      for循環的流程圖如下:

      //例子

      #include int main() { int i; for (i=1; i<=5; i++) { printf("%dn", i); } return 0; }

      //輸出

      1

      2

      3

      4

      5

      While 循環

      While循環在?C程序設計是重復執行本身,直到給出控逆變現金流量表布爾條件被滿足。While 循環可以被認為是一個重復的 If 語句。

      for循環的流程圖如下:

      //例子

      #include int main() { int count=1; while (count<= 5) { printf("%d ", count); count++; } return 0; }

      //輸出

      1 2 3 4 5

      Do-While 循環

      C 編程中的Do While 循環被認為是與普通 While 循環完全相似的條件語句。唯一的區別是 Do While 循環將布爾/條件語句放在循環的末尾。這使得?Do While 循環至少執行一次。

      for循環的流程圖如下:

      //例子

      #include int main() { int j=0; do { printf("Value of the variable j is: %dn", j); j++; }while (j<=5); return 0; }

      //輸出

      Value of the variable j is: 0

      Value of the variable j is: 1

      Value of the variable j is: 2

      Value of the variable j is: 3

      Value of the variable j is: 4

      Value of the variable j is: 5

      C 編程中的條件語句

      C語言中的條件語句可以定義為在指定的數學或邏輯條件下決定程序語句的執行流程的編程語句。本 C 編程教程中的重要條件語句如下。

      如果

      C 語言中的If 語句是一種編程條件語句,它根據條件執行代碼段,前提是它為真且有效。下面是if?條件的流程圖?。

      //例子

      #include int main() { int number=0; printf("Enter a number:"); scanf("%d",&number); if(number%2==0){ printf("your number is %d and it is an even number",number); } return 0; }

      //輸出

      Enter a number:4

      your number is 4 and it is an even number

      否則-如果

      否則,如果條件語句在?C語言是用來執行一個語句了兩部。條件語句執行所提供的代碼段是真實有效的。下面是else-if?條件的流程圖。

      //例子

      #include int main() { int number=0; printf("enter a number:"); scanf("%d",&number); if(number%2==0) { printf("your number is %d and it is an even number",number); } else { printf("your number is %d and it is an odd number",number); } return 0; }

      //輸出

      Enter a number:5

      your number is 5 and it is an odd number

      else-if 梯子

      否則,如果梯子在?C語言中設置的連續否則,如果這是用來語句執行一個真實有效的語句出給定語句的集合。下面是else-if 梯形條件的流程圖。

      #include int main() { int number=0; printf("enter a number:"); scanf("%d",&number); if(number==10) { printf("your inputted number is equals to 10"); } else if(number==50) { printf("your inputted number is equal to 50"); } else if(number==100) { printf("your inputted number is equal to 100"); } else { printf("your inputted number is not equal to 10, 50 or 100"); } return 0; }

      //輸出

      enter a number:5

      your inputted number is not equal to 10, 50 or 100

      嵌套如果

      C 語言?中的Nested-If是一種條件語句,其中一個 Else-If 語句嵌入到另一個 If 語句中。下面是nested-if?條件的流程圖。

      //例子

      #include int main() { int v1, v2; printf("Enter the value of First variable :"); scanf("%d",&v1); printf("Enter the value of Second variable :"); scanf("%d",&v2); if (v1 != v2) { printf("First variable is not equal to Second variablen"); if (v1

      //輸出:

      Enter the value of First variable :12

      Enter the value of Second variable :21

      First variable is not equal to Second variable

      Second variable is greater than First variable

      C 編程中的數據結構

      甲?數據結構?可被定義為集合?數據值,它們之間的關系,并且被上所施加的功能?數據。它們大致分類如下。

      原始數據結構/內置數據結構

      抽象數據結構/用戶定義的數據結構

      數組

      一個陣列?被定義為相似類型的存儲在連續的存儲單元的數據項的集合。數組是最簡單的數據結構,其中每個數據元素都可以使用其索引號隨機訪問。

      共有三種不同類型的數組,即:

      一維數組

      二維數組

      多維數組

      一維數組

      一維數組可以定義為單行多列的數組。一維數組中的元素使用它們的索引號訪問。

      int arrayone[10];

      二維數組

      二維數組可以定義為數組的數組。該2D陣列被組織成可表示為行和列的集合矩陣。使用它們的交點坐標訪問數組的元素。

      int arraytwo[10][5];

      多維數組

      多維數組可以定義為數組的數組。3D 數組被組織為 3D 矩陣,可以表示為多行和多列的集合。數組的元素使用它們的 3D 交叉坐標進行訪問。

      int arraythree[10][10][10];

      鏈表

      鏈表是類似于數組的線性數據結構,唯一的區別是元素不保存在連續的內存位置,而是保存在隨機地址中并使用指針連接。

      單鏈表

      雙向鏈表

      循環鏈表

      單鏈表

      單向鏈表是一維數組的替代品。單向鏈表中的元素以順序格式存儲,但存儲在不同的存儲位置,通過指針相互連接。單向鏈表只能在一個方向上遍歷

      單向鏈表的代碼可以在這里找到

      雙向鏈表

      雙向鏈表是二維數組的替代品。雙向鏈表中的元素以順序格式存儲,但存儲在不同的存儲位置,通過指針相互連接。雙向鏈表可以雙向遍歷。

      雙向鏈表的代碼可以在這里找到

      循環鏈表

      循環鏈表類似于單鏈表。但是,唯一的區別是循環鏈表尾部的指針指向頭部。

      循環鏈表的代碼可以在這里找到

      文件

      C 中的基本文件處理技術,提供用戶可以對系統中的文件執行的基本功能。

      “r”——?搜索文件。如果文件成功打開,fopen?() 將其加載到內存中并設置一個指向其中第一個字符的指針。如果無法打開文件 fopen() 返回NULL。

      “w”——?搜索文件。如果文件存在,則覆蓋其內容。如果該文件不存在,則會創建一個新文件。如果無法打開文件,則返回NULL。

      “a” –?搜索文件。如果文件成功打開,則 fopen?() 將其加載到內存中并設置一個指向其中最后一個字符的指針。如果該文件不存在,則會創建一個新文件。如果無法打開文件,則返回NULL。

      “?r+” –?搜索文件。如果成功打開 fopen?( ) 將其加載到內存中并設置一個指向其中第一個字符的指針。如果無法打開文件,則返回NULL。

      “w+”——?搜索文件。如果文件存在,則覆蓋其內容。如果文件不存在,則創建一個新文件。如果無法打開文件,則返回NULL。

      “a+” –?搜索文件。如果文件成功打開,則 fopen?() 將其加載到內存中并設置一個指向其中最后一個字符的指針。如果該文件不存在,則會創建一個新文件。如果無法打開文件,則返回NULL。

      堆棧是一種線性數據結構,它遵循執行操作的特定順序。順序可能是 LIFO(后進先出)或 FILO(先進后出)。

      堆棧代碼可以在這里找到

      隊列

      甲隊列?是一個遵循在其中操作被執行的特定順序的線性結構。順序是先進先出 (FIFO)。此外,C 包括循環隊列。

      隊列的代碼可以在這里找到

      圖形

      圖被定義為使用節點和邊以圖形格式表示的數據結構。有三種類型的圖形,即。

      無向圖

      有向圖

      有向加權圖

      C 語言中的圖通常以兩種格式表示,如下所示:

      例如:

      鄰接矩陣

      鄰接表

      字符串

      該字符串被定義為以空字符結尾的一維字符數組。字符數組或字符串用于存儲單詞或句子等文本。數組中的每個字符占用一個字節的內存,最后一個字符必須始終為 0。

      兩種類型的字符串是:

      字符數組

      字符串字面量

      C語言中可用的String函數如下

      //例子

      #include #include int main( ) { int len; char text[10]="Edureka" ; length = strlen(array) ; printf ( "string length is = %d n" , length ) ; return 0; }

      //輸出

      string length is = 7

      函數

      函數可以被定義為花括號中主程序的程序細分。主程序可以調用函數來實現其功能。此過程提供代碼可重用性和模塊化。

      兩種類型的函數是:

      庫函數

      用戶定義函數

      功能優勢

      將避免在程序中重復編寫相同的代碼。

      在一個程序中可以多次調用函數。

      當 C 程序被分成多個函數時,可以輕松跟蹤它。

      可重用性是 C 函數的主要成就。

      使用函數應遵循的規則:

      函數聲明

      一個函數需要聲明為Global,并且需要明確指定函數的名稱、函數的參數和函數的返回類型。

      【Linux C編程】第零章 掌握 C 語言所需的基礎知識(linux系統)

      函數調用

      從程序中的任何位置調用函數時,應注意參數列表中的數據類型和參數列表中的元素數量是否匹配。

      功能定義

      函數聲明后,重要的是函數包括聲明的參數、代碼段和返回值。

      C 編程中使用函數的四個方面

      功能沒有參數和無返回值

      功能沒有參數,并用返回值

      功能與參數并沒有返回值

      功能與參數,并與返回值

      結構體與聯合體

      結構

      A S?tructure?是一個用戶定義的數據類型中可用的??,允許不同數據類型的數據項組合在一起。結構用于表示記錄。?struct是用于聲明結構的關鍵字。

      //例子

      #include struct Distance { int feet; float inch; } dist1, dist2, sum; int main() { printf("1st distancen"); printf("Enter feet: "); scanf("%d",&dist1.feet); printf("Enter inch: "); scanf("%f",&dist1.inch); printf("2nd distancen"); printf("Enter feet: "); scanf("%d",&dist2.feet); printf("Enter inch: "); scanf("%f",&dist2.inch); sum.feet = dist1.feet + dist2.feet; sum.inch = dist1.inch + dist2.inch; while (sum.inch!= 12) { ++sum.feet; sum.inch = sum.inch - 12; } printf("Sum of distances = %d'-%.1f\"", sum.feet, sum.inch); return 0; }

      //輸出

      1st distance

      Enter feet: 12

      Enter inch: 7.9

      2nd distance

      Enter feet: 2

      Enter inch: 9.8

      Sum of distances = 15'-5.7"

      聯合體

      聯合體是在可用的一個特殊的數據類型??,允許在相同的存儲單元,存儲不同的數據類型。union是用于聲明 Union 的關鍵字。

      //例子

      #include union Employee { int Id; char Name[25]; int Age; long Salary; }; void main() { union Employee E; printf("nEnter Employee Id : "); scanf("%d",&E.Id); printf("nEnter Employee Name : "); scanf("%s",&E.Name); printf("nEnter Employee Age : "); scanf("%d",&E.Age); printf("nEnter Employee Salary : "); scanf("%ld",&E.Salary); printf("nnEmployee Id : %d",E.Id); printf("nEmployee Name : %s",E.Name); printf("nEmployee Age : %d",E.Age); printf("nEmployee Salary : %ld",E.Salary); }

      //輸出

      Enter Employee Id : 102191

      Enter Employee Name : Karan

      Enter Employee Age : 29

      Enter Employee Salary : 45000

      Employee Id : 102011

      Employee Name : Ajay

      Employee Age : 26

      Employee Salary : 45000

      結構體和聯合體的區別

      重要的面試問題

      Binary Search

      Bubble Sort

      Merge Sort

      Round Robin Scheduling

      Fibonacci Series

      Roots of Quadratic Equation

      LCM of two numbers

      至此,我們結束了這篇“C 編程教程”文章。我希望您已經了解數據結構、語法、功能和使用它們執行的操作的重要性。

      C 語言 Linux 數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎樣對Excel2007表格中的值作出評價(excel綜合評價怎么做)
      下一篇:如何把重復的找出來(兩張表格如何把重復的找出來)
      相關文章
      亚洲狠狠婷婷综合久久蜜芽| 亚洲成av人片在线看片| 精品亚洲AV无码一区二区三区| 亚洲成A人片在线观看无码不卡| 亚洲综合另类小说色区| 国产午夜亚洲不卡| 精品亚洲一区二区三区在线观看| 亚洲日韩人妻第一页| 亚洲综合区小说区激情区| 国产成人99久久亚洲综合精品| 亚洲精品老司机在线观看| 亚洲精品国产精品国自产观看| 亚洲av无码专区在线观看素人| 国产亚洲综合精品一区二区三区| 成人婷婷网色偷偷亚洲男人的天堂| WWW国产亚洲精品久久麻豆| 亚洲A丁香五香天堂网| 亚洲熟伦熟女新五十路熟妇| 国产精品亚洲精品日韩已方| 久久亚洲国产精品五月天婷| 亚洲综合国产一区二区三区| 亚洲国产精品VA在线观看麻豆| 亚洲AV日韩精品久久久久| 麻豆亚洲AV永久无码精品久久| 亚洲黄色免费观看| 久久久久亚洲AV无码观看| 亚洲国产成人手机在线电影bd| 国产精品高清视亚洲精品| 亚洲精品无码久久| 亚洲国产精品无码久久久久久曰| 久久精品国产亚洲5555| 亚洲国产无套无码av电影| 亚洲国产成人久久综合一| 亚洲国产精品专区| 亚洲日韩精品无码专区加勒比 | 亚洲精品国产福利片| 亚洲AV综合色区无码二区爱AV| 亚洲熟妇成人精品一区| 国产精品亚洲一区二区三区久久| 国产成人亚洲综合无码| 西西人体44rt高清亚洲|