一、C語言基本常識
1、語言由函數組成
2、main是程序入口
3、C語言中不能出現中文或中文字符 (注釋和字符串除外)
關鍵字 : C語言提供表示特殊含義的單詞。
特點 : 1、 全部小寫 ;2、在Xcode中是紫褐色。
標識符 : 程序員自己在代碼中為某些東西起的名字。
規則 : 1、字母、數字、下划線組成;2、嚴格區分大小寫;3、不能以數字開頭;4、不能與關鍵字重名。
規范:駝峰標識。
注釋:對代碼的解釋說明,它是程序員看的,它不參與編譯。
包括單行注釋 和 多行注釋(多行注釋可以嵌套單行注釋,但多行注釋不能嵌套多行注釋)。
數據:存儲時長:靜態數據:存儲在硬盤上的數據;動態數據:內存中的數據。
常量:不可以改變的量。
變量:可以改變的量。
二、數據類型
1、基本數據類型
int——4字節——%d %i
float——4字節——%f
double——8字節——%lf
char——1字節——%c
枚舉:枚舉的本質是整型(enum)
場合:當某個東西只有幾個固定取值的時候
特點:先定義枚舉類型,根據枚舉類型定義枚舉變量
2、構造類型
(1)數組:用來從年初相同數據類型的多個數據的集合
定義:數據類型 數組名稱 [元素個數]
遍歷:把所有的元素都拿出來看一下(循環)
(2)結構體:多個數據放在一起可以表示特定的含義組成結構體
特點:先定義結構體類型,然后定義結構體變量
結構體與函數:如同基本數據類型與函數的關系
三、指針:指針就是地址
1、指針變量:用來存放地址的變量。
(1)指針只有初始化了才可以訪問它所指向的存儲空間;
(2)如果一個指針沒有初始化,它里面是垃圾值,稱為野指針;
(3)不能直接賦值一個整形數。
2、基本數據類型的指針: 指向基本數據類型的指針。
格式:數據類型 * 指針變量名稱。
3、結構體的指針: 指向結構體類型的指針。
格式:結構體類型 * 指針變量名稱。
訪問其所指向的結構體成員方式; (*指針變量名稱).成員名稱;指針變量名稱->成員名稱。
4、數組指針: 指向數組的指針;
格式: 所指向的數組的數據類型 (*指針變量名稱)[所指向的數組的元素個數]。
這種指針與二位數組名是等價的。
5、函數指針: 指向函數的指針。
格式: 所指向函數的返回值類型(*指針變量名稱)[所指向函數的形參列表]。
通過函數指針調用函數;(*指針變量名稱)(實參列表);指針變量名稱(實參列表)。
四、運算符
1、算數運算符
+ - * / %
2、賦值運算符
= += -= *= /= %=
3、自增自減運算符
++a , a++
--a , a--
4、sizeof運算符:用來計算變量、常量、數據類型所占用存儲空間的字節數
sizeof(常量) sizeof常量
sizeof(變量) sizeof變量
sizeof(數據類型)
5、逗號運算符
1、運算順序是從左到右
2、逗號表達式的運算結構為最后一個表達式的值
6、關系運算符
== != > < >= <=
7、邏輯運算符
&& || !
8、三目運算符
條件表達式 ? 結果1 : 結果2
優先級:一般優先級越高越先進行計算
結合方向:當優先級相同時,計算方向(從左到右,從右往左)
五、 流程控制:控制程序的執行流程
1、順序結構:按照從上到下的順序執行
2、分支結構:相當於岔路口,當條件滿足的時候就執行某段代碼
(1)if 語句:
◎ if 必須以if 開頭
◎ if 可以有多個else if
◎ if 語句最多有一個else
◎ if 語句中對多只有一個代碼塊會被執行
◎ 如果有 else 那么必然有一個代碼塊會被執行
(2)switch 語句: 當變量與否個常量相等時執行這個常量所對應代碼塊中的語句

注意點:1、僅支持整型數;2、case 后面只能是常量或常量表達式;3、case 后面的常量的值不能相同;4、結束條件 遇到break 或 "}"。
3、循環結構:當條件滿足就會一直執行循環體中的代碼,直到條件不再滿足為止
(1)while 語句:當條件滿足的時候就執行while后面大括號中的語句
(2)do while:循環體中代碼至少執行一次
(3)for語句:

(4)break:1、在switch語句中用來結束switch語句;2、用在循環結構中,用結束當前的循環語句。
(5)continue:只能用在循環結構中,跳過本次循環體重continue后面的語句,進入下一個條件判斷。
六、函數 : 完成特定功能的代碼段
定義格式:

函數聲明:告訴編譯器該函數已經存在了(函數的聲明可以有多個,定義只能有一個)。
函數參數:
1、基本數據類型作為函數參數傳遞是值傳遞;
2、數組作為函數參數傳遞是地址傳遞;
3、指針作為函數參數傳遞是地址傳遞;
4、結構體作為函數參數傳遞與基本數據類型一致。
函數返回值:函數完成功能后要返回給主調函數中的數據。
1、返回值的類型必須與返回值的類型一致;
2、一個函數只能有一個返回值;
return 作用:返回值給主調函數,結束函數。
七、預處理指令:在編譯之前需要進行解析處理的指令
1、宏定義:
不帶參數的宏定義:在編譯之前,使用宏名后面值,替換代碼中所有出現宏名標識的地方
帶參數的宏定義:把參數帶入宏名表達式中,然后替換宏調用的地方
2、條件編譯:在編譯的時候,當條件滿足時就編譯某段代碼
#if開頭 #elif #else #endif結尾
#ifdef #endif
#ifndef #endif
3、文件包含:
#include ——拷貝所包含的文件內容到#include指令所在地方。
#include " " ——包含自己的文件。
#include < > ——包含系統的頭文件。
4、進制:
十進制
二進制:0b 或0B
八進制:0——%o 或 %0
十六進制:0x或0X——%x或%X
位運算:& | ^ ~ >> <<

最后,不管你是轉行也好,初學也罷,進階也可,如果你想學編程~
【值得關注】我的 C/C++編程學習交流俱樂部!【點擊進入】
問題答疑,學習交流,技術探討,還有超多編程資源大全,零基礎的視頻也超棒~