C語言知識點梳理
C語言語法總結
寫在開篇:本篇文章適合C語言初學者和想梳理和回顧一下C語言整體語法的看官,由於考慮不要對初學者灌以較深的知識點而讓其失去學習的興趣,本篇文章知識點比較全面且不深,請看官自己決定是否閱讀以免浪費您寶貴的時間!
C語言作為一種底層面向過程語言,在程式語言中有著舉足輕重的地位,基本上“科班”出身的計算機系學生第一個接觸的程式語言都是C語言,因為筆者上大一的時候(2004年)也是學習了C語言,但是長時間沒有運用了,所以對C語言知識點做一個梳理,也為後續開發FFmpeg音視訊做一個堅實的基礎。好的廢話不多說,先來個HelloWorld鎮樓:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
常用基本型別:
整型:short, int, long short:16位,佔2個位元組 int:32位,佔4個位元組 long:32位,佔4個位元組 浮點型:float, double float:32位,精度低 double:32位,精度高 注:浮點型適合做科學運算,但是計算速度相對慢,如果不是做科學計算,那麼最好使用整型資料。 char型:8位,1個位元組。只代表一個字元。 void型:一般使用指標的時候使用。
變數與常量:
int a = 0;//變數,可以進行賦值,其中的值可以更改的 const int len = 256;//常量,定義之後,值不可以再改變 const是關鍵字,需要寫在前面
算術運算和比較運算:
算術運算: +, -, *, /, %:加/ 減/ 乘/ 除/ 餘 比較運算: >, ==, <, >=, <=, !=: 大於/ 等於/ 小於/ 大於等於/ 小於等於/ 不等
流程控制語句:
條件控制語句if else: if(a>b){ 執行語句……; } else { 執行語句……; } 迴圈控制語句while, do while, for: while(條件){ 執行迴圈的語句…… } do{ 執行迴圈的語句…… }while(條件) for(int i = 0; i < 10; i++){ 執行迴圈的語句…… }
函式:
函式用來實現函式體中的功能,本著高內聚,低耦合的思想,在函式內部只針對函式要實現的功能做開發,而與其他的函式最好是沒有關聯。 void func(int i){ 函式體 } 函式由返回值,函式名,引數,函式體組成。
檔案操作:
C語言中對檔案的操作是先定義一個FILE變數,然後對這個file變數進行操作 簡單例項: #include<stdio.h> int main(int argc, char* argv[]){ FILE* file; char buf[1024] = {0,}; file = fopen("1.txt", "a+"); fwrite("hello, world!", 1, 13, file); rewind(file); fread(buf, 1, 20, file); fclose(file); printf("buf = %s\n", buf); return 0; } a+:表示addition,如果1.txt存在則在1.txt文字內容的後面追加內容,如果不存在1.txt,則建立1.txt。 fwrite中的引數:第一個引數是你要寫入的內容,第二個引數是第一個引數中每個字元佔幾個位元組,第三個引數是第一個引數一共多少個位元組,第四個引數是要寫入那個檔案中。 fread中的引數:第一個引數要將資料內容讀到哪裡,第二個引數是將這個內容按幾個位元組一份進行讀取(例子中是一個位元組一個位元組的讀),第三個引數是一共讀取多少個位元組,第四個引數是從哪裡讀取。 rewind:這個是讓游標回到file的文字內容的首位(和資料庫遊標概念類似),否則游標停留在最後(因為前面fopen的時候輸入的引數是"a+",意思是在最後追加)。 fclose:在使用完檔案之後需要關閉這個檔案。
指標:
指標是C語言的靈魂,沒有學過指標相當於沒學過C語言。 指標存放的是指向某個值的地址,關鍵字是* int *a 這裡a存放的是指向*a值的地址,&a存放的是指向a的地址
結構體:
結構體有點類似於OOP中的class,但是不同的是其中只能定義變數不能定義方法。 關鍵字struct,相當於自定義型別。 struct st{ int a; int b; }; 使用的時候需要寫全 struct st sst, 然後使用“.”來呼叫定義的成員變數 sst.a = 10, sst.b = 20
列舉型別:
列舉的意義在於限制了列舉型別的物件只能在一個限定範圍中去選擇。 enum e_type{ red = 0, green, blue }; 使用的時候需要寫全 enum e_type et, 然後使用“.”來呼叫定義的成員變數 et.red 需要注意的是列舉中的變數是自增1的,green就是2,blue就是3。