#include < > 和#include " "的區(qū)別:
- #include < >編譯器在預(yù)設(shè)目錄中搜索頭文件,一般是庫(kù)文件所在目錄
- #include " "編譯器在當(dāng)前工程文件目錄中搜索頭文件,如果搜索不到,去庫(kù)文件所在目錄搜索頭文件。
變量的本質(zhì):
1.開(kāi)辟空間 <p>2.往空間里面放內(nèi)容 <p> 3.從空間里把內(nèi)容讀取出來(lái)
常量(const關(guān)鍵字)
在創(chuàng)建的時(shí)候初始化,一經(jīng)賦值不能在改變
枚舉類型(enum)
語(yǔ)法:enum 枚舉名{枚舉常量1,...} 枚舉變量名
優(yōu)點(diǎn):增強(qiáng)代碼的可維護(hù)性
自增 和自減運(yùn)算
-
i++和i--;
先使用當(dāng)前變量的值,在進(jìn)行自增自減運(yùn)算
-
++i和--i
先進(jìn)行自增自減,再使用變化后的新值
例1
#include <stdio.h>
int main(int argc, const char * argv[])
{
int a = 1, b = 2, c = 3;
if(a++ == 1 && (++b == 3 || c++ == 3))
{
printf("%d %d %d\n", a, b, c);
}
return 0;
}
輸出結(jié)果為:233
分析上面的例子,a++ == 1, a先是1==1成立,在自加1, a = 2;++b == 3,b 先自加1 ->b = 3; b == 3 成立,邏輯或后面的不再判斷, 所以c = 3
sizeof是運(yùn)算符(計(jì)算操作數(shù)的字節(jié)數(shù))
邏輯或(||)和邏輯與(&&)(見(jiàn)例1)
注意:
如果||前面有一個(gè)條件為真,后面的都不再做判斷;
如果&&前面有一個(gè)為假,后面的條件不再判斷;
* 一元否定運(yùn)算符( ! )
例2
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a = 5, b = 0;
if(!b)//if(!b)等價(jià)于if(b == 0)
{
b = a++;
}
else
{
b = --a;
}
printf("a = %d,b = %d\n", a, b);
}
輸出結(jié)果為:a = 6,b = 5
for循環(huán)的執(zhí)行順序
(先執(zhí)行語(yǔ)句1;然后執(zhí)行語(yǔ)句2判斷真假,真的話執(zhí)行循環(huán)體里的語(yǔ)句;當(dāng){}內(nèi)語(yǔ)句執(zhí)行完后執(zhí)行語(yǔ)句3;再判斷2的真假...知道2不滿足時(shí)退出for循環(huán)。)
注意:
在使用while{}和do while{}循環(huán)時(shí),一定要修改循環(huán)變量的值,避免造成死循環(huán)。
例3
for循環(huán)的執(zhí)行順序
函數(shù)
-
函數(shù)的定義
返回值類型 函數(shù)名 (形參列表)
-
函數(shù)調(diào)用的實(shí)質(zhì)
函數(shù)相當(dāng)于一個(gè)指針,存儲(chǔ)的是這個(gè)函數(shù)代碼區(qū)的地址編號(hào)
- 函數(shù)傳參的三種方式(單向傳遞)實(shí)參—>形參
傳值
傳指針(地址)
傳引用(C++)
字符串
字符串函數(shù)
- int strlen(const char *)計(jì)算字符串長(zhǎng)度;
- char *strcpy(char *to, const char *from)字符串拷貝函數(shù)
- char *strcat(char *, const char *)字符串拼接函數(shù)
- int strcmp(const char *str1, const char *str2)字符串比較函數(shù)(返回值三種>0,==0,<0)
Snip20160727_3.png
結(jié)構(gòu)體的sizeof的計(jì)算
先看結(jié)構(gòu)體中最大字節(jié)的類型;然后以最大字節(jié)數(shù)為一行分配內(nèi)存;當(dāng)分配到相應(yīng)類型時(shí),數(shù)字標(biāo)號(hào)(從0開(kāi)始)一定要能整除當(dāng)前類型的字節(jié)數(shù),不能整除就往后偏移。當(dāng)最后分配的內(nèi)存不足一行時(shí),按一行算。
宏定義(#define)
注意點(diǎn):#define max(A, B) ((A) >(B) ? (A) : (B));
參數(shù)可能是一個(gè)表達(dá)式,所以要加( );
宏定義是在預(yù)編譯的時(shí)候替換,不需要寫類型。
break continue 和return
-
break
1.用在switch結(jié)構(gòu),作用是跳出switch結(jié)構(gòu)
2.用在循環(huán)語(yǔ)句中,跳出循環(huán),執(zhí)行循環(huán)語(yǔ)句下面的語(yǔ)句。如果是多層循環(huán),只會(huì)跳出當(dāng)層循環(huán)。
-
continue
用于循環(huán)體內(nèi)部,作用是結(jié)束本次循環(huán),開(kāi)始新的循環(huán)。所以當(dāng)執(zhí)行continue語(yǔ)句之后,continue后面的循環(huán)語(yǔ)句將不再執(zhí)行。
-
return
跳出當(dāng)前的函數(shù),當(dāng)前函數(shù)return后面的語(yǔ)句不會(huì)再執(zhí)行。

