【【ccc云志】學(xué)c語言最重要的知識點(diǎn)總結(jié),為學(xué)c語言發(fā)愁的同學(xué)轉(zhuǎn)走背一下吧】https://toutiao.com/group/6582822070382494216/?iid=15906422033&app=explore_article×tamp=1532780891&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_ios&utm_campaign=client_share
(指針星號在非變量定義的時候它是一個操作符訪問指針?biāo)赶虼鎯臻g)
1、所有計(jì)算機(jī)的指令與數(shù)據(jù)都是由 0、1構(gòu)成
2、C語言是由函數(shù)組成的
3、C語言的入口是main函數(shù)
4、源碼 -> 編譯 -> 鏈接 -》運(yùn)行
關(guān)鍵字:C語言提供的表示特殊含義單詞
標(biāo)示符:程序員自己為某些東西起名字
命名規(guī)則:
1、字母、數(shù)字、下劃線
2、不能以數(shù)字開頭
3、不能與關(guān)鍵字重名
4、嚴(yán)格區(qū)分大小寫
命名規(guī)范
駝峰標(biāo)示
注釋:對代碼解釋說明,是給程序員看的,方便程序員之間的交流
1、注釋不參與編譯
2、 單行注釋 // 多行注釋
數(shù)據(jù)類型:按照存儲時間
靜態(tài)數(shù)據(jù):存儲在硬盤上的數(shù)據(jù)
動態(tài)數(shù)據(jù):存儲在內(nèi)存中的數(shù)據(jù)
常量:不可以改變量
變量:可以改變的量,變量使用來存儲常量數(shù)據(jù)的
運(yùn)算符
算術(shù)運(yùn)算符 - * / %
賦值運(yùn)算符 = = -= /= *= %=
自增自減 --a a-- a a
關(guān)系運(yùn)算符 == != > < >= <=
邏輯運(yùn)算符 && || !
三目運(yùn)算符 條件表達(dá)式 ? 結(jié)果1 : 結(jié)果2;
基本數(shù)據(jù)類型
int 、float 、double 、char
枚舉:當(dāng)某個東西只有幾個固定的取值的時候,我們就使用枚舉
定義格式 enum 枚舉類型名{成員,... };
作用:提高代碼可讀性
構(gòu)造類型
數(shù)組:保存相同數(shù)據(jù)類型的多個數(shù)據(jù)的集合(容器)
格式: 數(shù)據(jù)類型 數(shù)組名[元素格式]
結(jié)構(gòu)體:用來保存不同數(shù)據(jù)類型的多個數(shù)據(jù)的,相同的數(shù)據(jù)類型但可以表示特定含義的也可以使用結(jié)構(gòu)體
定義結(jié)構(gòu)體類型的格式; struct 結(jié)構(gòu)體類型名{ 數(shù)據(jù)類型 成員名; ... };
特點(diǎn):先定義結(jié)構(gòu)體類型再定義結(jié)構(gòu)體變量
作用:提高代碼的可讀性、封裝數(shù)據(jù)、然代碼更有組織
指針類型
定義格式:所指向數(shù)據(jù)類型 * 指針變量名
*作用:
1、在變量定義的時候,它是一個說明符,說明定義這個變量是指針變量;
2、在非變量定義的時候,它是一個操作符,訪問指針?biāo)赶虼鎯臻g
&作用:取出變量的地址
* 與 & 是一對反操作符
1、指針作為函數(shù)參數(shù)傳遞是地址傳遞
指向數(shù)組的指針:
int nums[5][10];
int (*array)[10] = nums;
指向結(jié)構(gòu)體指針
struct Person{int age;};
struct Person person = {10};
struct Perosn *p = &person;
p->age;
指向函數(shù)指針
int sum(int num1,int num2) { return num1 num2 ; }
int (*sumPointer)(int,int) = sum;
sumPointer();
字符串:
1、使用字符數(shù)組
char name[] = 'zbz'; //棧 : 可以修改的
2、使用字符指針
char *name = 'zbz'; //常量區(qū) 只讀的
3、字符串?dāng)?shù)組
1、char類型的二維數(shù)組
char names[][10] = {'xhh','xff','xmf'};//棧
2、char類型指針數(shù)組
char *names[] ={'xhh','xff','xmf'};// 常量區(qū)
總結(jié):所有的數(shù)據(jù)類型都可以定義變量
所有數(shù)據(jù)類型都可以作為函數(shù)參數(shù)
所有數(shù)據(jù)類型都可以作為函數(shù)的返回值
順序結(jié)構(gòu):按照從上到下順序執(zhí)行
分支結(jié)構(gòu)(選擇結(jié)構(gòu)):就相當(dāng)于岔路口,根據(jù)不同條件指向不同代碼
if語句:當(dāng)條件滿足的時候,執(zhí)行if后面大括號中語句
1、if都是以if開頭
2、if語句最多只有一個else
3、if語句可以有任意個else if
4、if語句最多只有一個代碼會被執(zhí)行
switch語句
1、只支持整形數(shù)據(jù)
2、如果表達(dá)式中值與case中的常量相等就執(zhí)行這個case中語句
3、只有遇到break和 } 才會結(jié)束
4、只要匹配上一個case那么后面的case都失效了
循環(huán)結(jié)構(gòu)體:只要條件滿足就指向循環(huán)體中的語句,直到條件不再滿足為止
while循環(huán):當(dāng)while后條件表達(dá)滿足就指向循環(huán)體
do while: 循環(huán)體中的代碼至少會執(zhí)行一次
for循環(huán):
格式:for(初始化表達(dá)式;條件表達(dá)式;循環(huán)后操作表達(dá)式)
{
語句;
....
}
初始化表達(dá)式:在整個循環(huán)中僅執(zhí)行一次
條件表達(dá)式:在每一次循環(huán)前都會判斷條件表達(dá)式是否滿足,如果滿足就執(zhí)行循環(huán)體中代碼
否則就退出循環(huán)
操作后表達(dá)式:在沒有循環(huán)結(jié)束的時候都可以循環(huán)后操作表達(dá)式
continue:
只能用循環(huán)結(jié)構(gòu)中,跳過本次循環(huán)中,continue后語句,進(jìn)入下一次條件判斷
break:
用在switch中,他是用結(jié)束switch語句的
用在循環(huán)結(jié)構(gòu)中,結(jié)束當(dāng)前循環(huán)語句的
函數(shù)定義的格式:
形參列表
返回值類型 函數(shù)名稱(形參類型 形參名稱...)
{
語句;
...
}
寫一個函數(shù)步驟:
1、確定函數(shù)功能,給函數(shù)起一個有意義名字
2、確定形參列表(完成該功能是否需要外界傳入一些補(bǔ)助值)
3、確定返回值類型(完成該功能是否需要返回?cái)?shù)據(jù)給調(diào)用者)
4、寫函數(shù)體,完成函數(shù)功能
如果我們要在前面的函數(shù)中訪問后面的函數(shù),需要對函數(shù)進(jìn)行聲明
多文件開發(fā)
.h 中寫函數(shù)的聲明
.c 寫函數(shù)的實(shí)現(xiàn)(定義)
注意點(diǎn):
1、基本數(shù)據(jù)類型作為函數(shù)參數(shù)傳遞是指值傳遞
2、數(shù)組作為函數(shù)參數(shù)傳遞是地址傳遞
3、指針作為函數(shù)參數(shù)傳遞是地址傳遞
4、結(jié)構(gòu)體作為函數(shù)參數(shù)傳遞是值傳遞
十進(jìn)制:逢 10 進(jìn) 1 默認(rèn) %d
二進(jìn)制:逢 2 進(jìn) 1 0b/0B開頭 無
八進(jìn)制:逢 8 進(jìn) 1 0開頭 %o
十六進(jìn)制:逢 16 進(jìn) 1 0x開頭 %x %X
位運(yùn)算: & | ^ ~ >> <<
宏定義:
不帶參數(shù)宏定義: #define 宏名 值
作用:在預(yù)編譯的時候,將代碼中所有出現(xiàn)宏名地方都替換成值
帶參數(shù)宏定義:#define 宏名(參數(shù)列表) 表達(dá)式
作用:在編譯預(yù)處理的時候,使用表達(dá)式替換出現(xiàn)宏名列表的地方
#define SUM(x,y) ((x) (y))
SUM(10,20) ==== ((10) (20))
條件編譯:如果滿足條件就編譯if后面的語句
#if 條件表達(dá)式
語句;
#elif
語句;
#endif
1、防止頭文件的重復(fù)包含
2、可以處理項(xiàng)目上線與開發(fā)兩種狀態(tài)下執(zhí)行不同代碼
文件包含:
#inclue:拷貝文件
#inclue '' 包含自己寫頭文件
#inclue <> 包含系統(tǒng)自帶頭文件
7、typedef
1、給基本數(shù)據(jù)類型起別名
typedef int Integer;
2、給結(jié)構(gòu)體起別名
typedef struct{
int age;
} Person;
3、給枚舉類型起別名
typedef enum{
Man,
Woman,
Other
} Sex;
4、指針類型起別名
typedef int * Int;
Int p;
5、給函數(shù)指針起別名
int sum(int num1,int num2) {return num1 num2; }
typedef int (*Pointer)(int,int);
Pointer sumPointer = sum;
sumPointer();
學(xué)習(xí)基地(見評論區(qū))
很多人的學(xué)習(xí)環(huán)境就是課堂,離開了課堂,自己學(xué)的時間少之又少,少了份氣氛,就算逼著自己去學(xué)習(xí),慢慢的也會覺得枯燥,有問題不會也沒有人去問,可以找一個C/C 交流學(xué)習(xí)群,集合了眾多志同道合的朋友,這樣對你學(xué)習(xí)會起到一定的暗示作用,有問題也可以在群里討論。
喜歡此篇文章或覺得這篇文章對你有幫助的讀者可以點(diǎn)播關(guān)注或者轉(zhuǎn)發(fā),以便幫助更多對如何學(xué)習(xí)C/C 迷茫的小白。
=->學(xué)習(xí)基地見評論區(qū)