1.類型轉化
隱式轉化 5/3=1.00000 當賦值號兩邊類型不同時,自動轉化精度較高的類型
顯式轉化 強制類型轉化
2.位運算符
&:位與 4&3 0100 12&7 1100
0011 =0000=0 0111 =0100=4 對應位同時為1才為1
|:位或 4|3 0100 12|7 1100
0011 =0111=7 0111 =1111=15
:非(取反)23:~(0001 0111)
補碼:1110 1000
反碼:1110 0111
原碼:1001 1000
原碼:正數的原碼是其本身
反碼:符號不變,其他位取反
補碼:負數的補碼是其正數的原碼取反加一
^:異或 不同為1,相同為0
<<:左移8<<2 1000 100000 =32 低位補零
8*2的2次 =32
:右移 與左移互逆
(1)二進制數:由0和1組成
(2)八進制數由0-7組成,以0開頭
(3)十六進制數 由數字0-9和 A-F或者a-f組成 以0x或者0X開頭
3.賦值操作符
+=
-=
*=
/=
%=
&=
|=
=
<<=
4.邏輯運算符
(1)&& 邏輯與 表達式1 &&表達式2 當表達式1、2都為真,結果為真
||邏輯或 表達式1 || 表達式2 當表達式1和表達式2只要有一個為真,結果為真。
!非 若表達式結果為真,則結果為假。
若表達式結果為假,則結果為真。
(2) 條件運算符
?:
表達式1? 表達式2: 表達式3
表達式1 為真執行表達式2 若為假執行表達式3
三者對比 a>b?(a>c?a:c):(b>c?b:c);
5.運算符優先級
括號成員第一
全體單目第二
乘除余第三
加減第四
位移第五
關系第六
等與不等排第七
位與,異或和位或八九十
邏輯或和與十二和十一
條件高于賦值,逗號運算符最低。
6.c語言的三大結構
順序結構、分支結構、循環結構
分支結構
(1)if表達式 {......}
表達式為真則執行{}里的語句;為假不執行{}里的語句。
(2)if else
(3)if ...else if...else if... else
(4)
(5)if條件句后面只有一條語句時,可以不加{}。
{}內定義的變量 只在{}內有效
switch...case:
(1)switch(option)
{
case option1:
break;
case option2:
break;
......
default:
break;
根據option的值選擇執行case語句,若沒有與之對應的case語句執行default語句!
(2)注意事項:default可以放在switch{}內任意位置
case后面的{}可以不寫,超過三條建議寫上{}
(3)case語句中的break視情況而定寫。
若沒有break則順次執行所有的case語句,直到把所有的case語句執行完,退出switch
循環結構
(1)while(表達式){執行語句}先判斷后執行
break 退出循環 ,continue 跳過本次循環,進入下次循環
(2)do {}while();先執行后判斷
(3)for(循環條件初始化:循環結束條件;循環步長)
注意:表達式1,2,3可以省略,或者全部省略。但是“;;”不可以省略?。?!
=============================================================================
12.14
1.循環
for (表達式1;表達式2;表達式3)
執行順序;
A表達式1
B表達式2,若2成立執行C;不成立執行E;
C循環體即{}的內容
D表達式3.執行B
E結束循環
2.數組的定義
DataType ArrayName [size];
數據類型 數組名 數組大小或者下標,必須是常量
[]:下標運算符
下標是從零開始到size-1
3.注釋
(1) // 單行注釋 放在上一行或者行末
(2) /......./ 相當于括號
(3)#if 0 。。。#else 。。。。#endif 0不可以執行
#if 1 。。。#else 。。。。#endif 1 可以執行
4.數組的存儲
數組也是一種數據結構,數組中的元素順序存儲,數組中每個元素的類型
相同。
數組地址問題
int arr[5]
arr arr+0 &arr 地址一樣
arr+1 &arr[0]+1 &arr+1
+4 +4 +20 十六進制下14
注釋:arr:數組名,也代表數組元素的首地址,即第一個元素的地址
&arr[0]:數組元素的首地址,即第一個元素的地址
&arr:數組的首地址
arr+1和&arr[0]+1:表達意思一樣,
地址偏移sizeof(arr[0])個字節
&arr+1:偏移量為sizeof(arr)個字節。
注意:數組若要初始化,必須在定義的同時初始化,不能先定義,后初始化。
define M 5 5替換替換成M,宏定義。
5.數組元素的定義賦值
6.char arr[16]={'h','e','l','l','o'}
buf[16]={"hello"}
數組名不能和變量名重復
二維數組(基于矩陣)
DataType ArrayName[行下標][列下標];
(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}