1.類型轉(zhuǎn)化
隱式轉(zhuǎn)化 5/3=1.00000 當(dāng)賦值號兩邊類型不同時筋搏,自動轉(zhuǎn)化精度較高的類型
顯式轉(zhuǎn)化 強(qiáng)制類型轉(zhuǎn)化
2.位運算符
&:位與 4&3 0100 12&7 1100
0011 =0000=0 0111 =0100=4 對應(yīng)位同時為1才為1
|:位或 4|3 0100 12|7 1100
0011 =0111=7 0111 =1111=15
:非(取反)23:~(0001 0111)
補(bǔ)碼:1110 1000
反碼:1110 0111
原碼:1001 1000
原碼:正數(shù)的原碼是其本身
反碼:符號不變,其他位取反
補(bǔ)碼:負(fù)數(shù)的補(bǔ)碼是其正數(shù)的原碼取反加一
^:異或 不同為1灰伟,相同為0
<<:左移8<<2 1000 100000 =32 低位補(bǔ)零
8*2的2次 =32
:右移 與左移互逆
(1)二進(jìn)制數(shù):由0和1組成
(2)八進(jìn)制數(shù)由0-7組成拆又,以0開頭
(3)十六進(jìn)制數(shù) 由數(shù)字0-9和 A-F或者a-f組成 以0x或者0X開頭
3.賦值操作符
+=
-=
*=
/=
%=
&=
|=
=
<<=
4.邏輯運算符
(1)&& 邏輯與 表達(dá)式1 &&表達(dá)式2 當(dāng)表達(dá)式1儒旬、2都為真栏账,結(jié)果為真
||邏輯或 表達(dá)式1 || 表達(dá)式2 當(dāng)表達(dá)式1和表達(dá)式2只要有一個為真,結(jié)果為真栈源。
挡爵!非 若表達(dá)式結(jié)果為真,則結(jié)果為假甚垦。
若表達(dá)式結(jié)果為假茶鹃,則結(jié)果為真涣雕。
(2) 條件運算符
?:
表達(dá)式1闭翩? 表達(dá)式2: 表達(dá)式3
表達(dá)式1 為真執(zhí)行表達(dá)式2 若為假執(zhí)行表達(dá)式3
三者對比 a>b?(a>c?a:c):(b>c?b:c);
5.運算符優(yōu)先級
括號成員第一
全體單目第二
乘除余第三
加減第四
位移第五
關(guān)系第六
等與不等排第七
位與挣郭,異或和位或八九十
邏輯或和與十二和十一
條件高于賦值,逗號運算符最低疗韵。
6.c語言的三大結(jié)構(gòu)
順序結(jié)構(gòu)兑障、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
分支結(jié)構(gòu)
(1)if表達(dá)式 {......}
表達(dá)式為真則執(zhí)行{}里的語句蕉汪;為假不執(zhí)行{}里的語句流译。
(2)if else
(3)if ...else if...else if... else
(4)
(5)if條件句后面只有一條語句時,可以不加{}者疤。
{}內(nèi)定義的變量 只在{}內(nèi)有效
switch...case:
(1)switch(option)
{
case option1:
break;
case option2:
break;
......
default:
break;
根據(jù)option的值選擇執(zhí)行case語句福澡,若沒有與之對應(yīng)的case語句執(zhí)行default語句!
(2)注意事項:default可以放在switch{}內(nèi)任意位置
case后面的{}可以不寫驹马,超過三條建議寫上{}
(3)case語句中的break視情況而定寫革砸。
若沒有break則順次執(zhí)行所有的case語句,直到把所有的case語句執(zhí)行完窥翩,退出switch
循環(huán)結(jié)構(gòu)
(1)while(表達(dá)式){執(zhí)行語句}先判斷后執(zhí)行
break 退出循環(huán) 业岁,continue 跳過本次循環(huán),進(jìn)入下次循環(huán)
(2)do {}while()寇蚊;先執(zhí)行后判斷
(3)for(循環(huán)條件初始化:循環(huán)結(jié)束條件笔时;循環(huán)步長)
注意:表達(dá)式1,2仗岸,3可以省略允耿,或者全部省略。但是“扒怖;较锡;”不可以省略!5裂鳌蚂蕴!
=============================================================================
12.14
1.循環(huán)
for (表達(dá)式1;表達(dá)式2俯邓;表達(dá)式3)
執(zhí)行順序骡楼;
A表達(dá)式1
B表達(dá)式2,若2成立執(zhí)行C稽鞭;不成立執(zhí)行E鸟整;
C循環(huán)體即{}的內(nèi)容
D表達(dá)式3.執(zhí)行B
E結(jié)束循環(huán)
2.數(shù)組的定義
DataType ArrayName [size];
數(shù)據(jù)類型 數(shù)組名 數(shù)組大小或者下標(biāo),必須是常量
[]:下標(biāo)運算符
下標(biāo)是從零開始到size-1
3.注釋
(1) // 單行注釋 放在上一行或者行末
(2) /......./ 相當(dāng)于括號
(3)#if 0 朦蕴。篮条。弟头。#else 。涉茧。赴恨。。#endif 0不可以執(zhí)行
#if 1 。。菱父。#else 。除师。。扔枫。#endif 1 可以執(zhí)行
4.數(shù)組的存儲
數(shù)組也是一種數(shù)據(jù)結(jié)構(gòu)汛聚,數(shù)組中的元素順序存儲,數(shù)組中每個元素的類型
相同短荐。
數(shù)組地址問題
int arr[5]
arr arr+0 &arr 地址一樣
arr+1 &arr[0]+1 &arr+1
+4 +4 +20 十六進(jìn)制下14
注釋:arr:數(shù)組名倚舀,也代表數(shù)組元素的首地址,即第一個元素的地址
&arr[0]:數(shù)組元素的首地址忍宋,即第一個元素的地址
&arr:數(shù)組的首地址
arr+1和&arr[0]+1:表達(dá)意思一樣痕貌,
地址偏移sizeof(arr[0])個字節(jié)
&arr+1:偏移量為sizeof(arr)個字節(jié)。
注意:數(shù)組若要初始化糠排,必須在定義的同時初始化舵稠,不能先定義,后初始化入宦。
define M 5 5替換替換成M哺徊,宏定義。
5.數(shù)組元素的定義賦值
6.char arr[16]={'h','e','l','l','o'}
buf[16]={"hello"}
數(shù)組名不能和變量名重復(fù)
二維數(shù)組(基于矩陣)
DataType ArrayName[行下標(biāo)][列下標(biāo)]乾闰;
(1)初始化:
int arr[3][3] = {1落追,2,3}涯肩;
int arr1[3][3] = {{1,2,3},{4,5,6}}
int arr1[][3] = {1,2,3,4,5,6}