c中的字串是被雙引號
「...」括起來的字串行:」abc」,」123456」
printf( 「列印字串%s\n」 , 」abc/123456」 );
printf( 「%d\n」 , 1 + 1 );
資料型別與變數:
整數型別:不帶小數點的型別,%d
浮點數型別:帶小數點的型別,%f
字元型別:英文本元型別,字元資料是使用單引號括起來的乙個字元 』a』 , 』n』 , 』\n』 (為無回顯字元
),%c
改變變數所代表的值的操作叫做賦值操作;
= 在程式中為賦值符號;
定義變數之後在通過賦值改變其代表的;
初始化即讓建立變數出來的變數有乙個初始值;
定義變數的同時給乙個值;
四則運算:+ , - , * , / , %(取餘運算,結果為餘數,浮點數不能取餘運算
) ,先正負號接著乘除最後加減;
關係運算:
< , > , <= , >= , == , != 結果為邏輯值:真
(1),假
(0)
,大小比較運算
>
相等比較運算;
邏輯運算:&& , || , ! 邏輯運算參與者為邏輯值:真或假,任何非零值在邏輯運算中均為真,任何零值在邏輯運算中均為假;
邏輯運算的短路法則:
對於&&,從左向右進行,如果有乙個運算元為假,則整個表示式為假,第乙個為假的運算元之後的其它運算元不再計算;
對於||,從左往右進行,如果有乙個運算元為真,則整個表示式為真,第乙個為真的運算元之後的其它運算元不再計算;
取非運算,單目運算,只需乙個運算元,運算結果為邏輯值,真值取非為假,假值取非為真;
c=!!c; //非0即
1位運算: | , ^ ,& , >> , << , ~ 只能對整數型的運算元進行運算,優先順序從低到高;
~ 按位取反,
~0101=1010
<< 左移,高位移出,低位補0,
0011 << 1 = 0110
>> 右移,低位移除,高位補符號位,
0101 >> 2 = 0001
& 按位與,
0011 & 1111 = 0011
,某一位和
0與,其餘和
1與,相當於按位置零
^ 按位異或,同為
0,不同為
1,不進製加法,
0011 ^ 1111 = 1100
,某一位和
1異或相當於取反
| 按位或,
0011|1111 = 1111
,某一位和
1按位或,相當於置
1,優先順序:四則運算 > 關係運算
>
賦值運算( = )
同乙個表示式中應避免不同的運算型別(四則運算,關係運算)
正數用原碼表示,負數用補碼表示
位運算時先明確:
1運算元的型別,占用記憶體的大小;
2運算元是正數還是負數;
3不同型別的運算元要先自動對齊再進行位運算;(補符號位)
左值和右值,
左值:可以出現在賦值符號左邊的值,如變數
右值:出現在賦值符號右邊的值,如變數,字面量,計算結果(a+b),任意表示式
連續變數定義和連續賦值
int a , b , c ; a = b = c ; → b = c ; a = b ;
三目運算子(條件運算子)
( 條件
) ? (
為真時語句
) : (
為假時語句
)(b<10) ? (a = 10) : (a = 100);三目運算子產生的是乙個值,不能作為左值使用;
逗號表示式,可以將多個語句連線為乙個語句,從左往右執行語句,逗號表示式的值是最右邊語句的值;c = ( a=2 , b=3 , a+b ); → c = 5;
自增自減運算子 ++ - -
前置:先自增自減,再取值
++v → (v=v+1 , v)
--v → (v=v-1 , v)
後置:先取值,再自增自減
v++ → (v=v+1 , v-1)
v-- → (v=v-1 , v+1)
自增自減操作符的結合方向:自右向左,int c= 1; a = -c++ ;→ a = -1 ; c=2 ;
自增自減不支援浮點型別
char 一位元組;short 兩位元組;int 四位元組;
正數的最高位為0,負數的最高位為
1;正數的補碼為正數本身,負數的補碼為負數絕對值取反加1;
無符號數預設為正數,無符號數沒有符號位:unsigned
有符號-10和無符號
5數相加時大於
0,因為有符號的被轉換為了無符號的;
▲for迴圈中自減的變數
i不能設定為無符號數,否則會無限迴圈
型別的轉換
char->short->int->unsigned int->long->unsigned long->float->double
for迴圈先進行判斷在進入迴圈體,適用於迴圈次數固定的場合
while迴圈先進性判斷再進入迴圈體,使用於迴圈次數不固定的場合
do... while 迴圈先執行迴圈體再進行條件判斷,迴圈至少執行一次迴圈體
while ( (scanf ( 「 %d , %d 」, &a , &b )) == 2 )
scanf ( 「 %*s」 ) ; 跳至下乙個空白字元,對返回的非所需要的在緩衝區的錯誤數值進行處理;
printf ( 「%p」 , p) ;
c小結 聽課筆記
1 c是基於作業系統的 2 對於乙個 malloc 指標也可以 free 但是會出現記憶體錯誤 如段錯誤 3 str 3 等價於3 str 等價於 str 3 因為 是進行位址運算 4 char dig char str 等價於char dig char str 5 遞迴呼叫會出現耗盡記憶體 棧記憶...
C 學習筆記 指標小結
1 宣告指標 typename pointername 型別 指標名 示例 double pn 指向double型別的指標 int pc 指向int型別的指標 2 給指標賦值 將記憶體位址賦給指標 1 用 運算子獲得被命名的記憶體的位址 指標名 變數名 2 用new運算子返回未命名的記憶體的位址 指...
c 學習筆記 5 11 小結
函式模板 類模板動態陣列類 向量類 鍊錶類集合類 棧類 先進後出 可以用於做乙個計算器 佇列類 先進先出 迴圈佇列 運用取餘的做法 讓頭到尾 尾到頭 類是對物件的抽象 而類模板是對類的抽象 但是人們還是不滿足 當兩個類模板 比如 集合類模板 與 鍊錶類模板 都有相似的演算法 add remove 那...