函數
多看+多敲+多思考總結學習
----用來存放各類類型的數據編碼
例子:spa
商品的價格---》小數表示 4.0 3.5指針
商品的數量---》整數字符串
商品的名稱---》中文字符串或者英文字符串數學
int(整型) long long int(長長整型)
• char(字符類型) float(單精度浮點型)
• double(雙精度浮點型) long(長整型)
• short(短整型) union(聯合體)
• bool(類型) struct(結構體)
• enum(枚舉) unsigned(無符號數)
語法規則: 類型 變量名字;string
如:it
int ab123;io
float price; //英文單詞,或者縮寫
float jiage; //最噁心的--即拒絕用拼音命名!!!
第一個:變量的名字中只能有字母,數字和下劃線組成,而且首字母不能是數字
如:ab Ab ab78 a79 _abc 7mn(非法) a#b(非法) h@c(非法)
第二個:命名的時候儘可能通俗易懂,不要用漢語拼音,用英文單詞縮寫
大小: 4個字節,32位二進制,知道大小是爲了防止使用的時候數據溢出了(超出取值範圍了)
存儲:
原碼:一個整數本來的二進制編碼
好比: 8的二進制原碼 1000(短除法求)
反碼:把原碼依次取反
原碼:1101 --》反碼0010
補碼:反碼加1
例子:
原碼:1101 --》補碼0010+1 --》0011
正數在計算機中採用原碼存放,而且最高位是符號位,0表示正數,1表示負數
最簡單的C語言程序
做用:C語言區分不一樣的數據類型,在輸入輸出數據的時候須要使用不一樣的格式控制符號來跟變量類型對應
經常使用進制數的標準寫法:
int a=10; //二進制10 --》2
• //八進制10 --》8
• //十六進制10 --》16
• int a=b10; //二進制
• int a=010; //八進制10
• int a=0x10; //十六進制10
• int a=10; //十進制的
%d --> int
• %f -->float 默認保留6位有效數字
• %lf -->double
• %hu -->short
• %ld -->long
• %lld -->long long int
• %c -->char 輸出的是字符自己
• %d -->char 輸出是字符的ASCII碼值
• %x -->十六進制,字符小寫打印
• %X -->十六進制,字符大寫打印
• %#x -->標準形式打印十六進制,前面加上0x
• %o -->八進制
• %#o -->標準形式打印八進制,前面加上0
• %10.2f -->前面10表示位寬 後面的2表示保留2個小數位
• %-10.2f -->前面10表示位寬 後面的2表示保留2個小數位
• %.9f -->指定了保留9個小數位,位寬沒有指定,默認位寬
• %10d -->10是位寬,靠右對齊,左邊補空格
• %-10d --> 靠左對齊,右邊補空格
• %s -->字符串
• %5s
• %p -->變量地址
1.注意縮進---用tab鍵縮進對齊;
2.適當的空行;
3.註釋,簡明扼要:
C語言註釋只有兩種寫法
--單行註釋 //註釋文字
--塊註釋 /* 註釋的內容 */,塊註釋不能嵌套
尤爲是重要的核心代碼必須寫註釋
4.命名。通俗易懂---英文,千萬不要用拼音
算術運算符 + - * / % (取餘)
• 關係運算符 > < == != >= <=
• 邏輯運算符 ||邏輯或 &&邏輯與 !邏輯非
• 指針運算 * &
• 三目運算符 ?:
• 求數據類型大小,變量大小 sizeof
• 位運算 & | ~ ^
• 組合運算 += -= *= \= &= |=
• 移位運算 >> <<
• 自增自減 ++ --
狀況一:
兩個整數相除,結果取整,並且不會四捨五入
狀況二:
除法運算中有一個是小數
1/2 --》結果不是0.5 是0
16/3 --》5
2/3 --》
只能用於整數運算 15%2 餘數1
15.0%2 不對的,小數不能參與取餘運算
除法和取餘配合實現獲取一個數的各個位
if(a>b)
數學中: 10<x<100
C語言中: if(x>10 && x<100)
重點---區分==和=
「==」用來判斷變量是否相同 if(a==b)
「= 」賦值運算符號 a=233
C語言規定的真和假
非零就是真 1 18 -9
• 零就是假
&&、||、~:
表達式一 || 表達式二 || 表達式三
• //從左到右,有一個條件爲真,後面的都不用運算了,整個表達式都爲真
• 表達式一 && 表達式二 && 表達式三
• //從左到右,有一個條件爲假,後面的都不用運算了,整個表達式都爲假
• if(有房&&有車&&帥) ---都成立,你纔是高富帥
• 邏輯非 真--》假
• 假--》真
表達式1?表達式2:表達式3
判斷表達式1是否爲真
爲真 --》執行表達式2
爲假 --》執行表達式3
對整數的二進制進行運算
按位與 & 只要有一個是0結果就是0,所有都是1,結果就是1
好比: 18&16結果是多少? int a=89; int b=96; a&=b; //等價於 a=a&b;
18 --》二進制 10010
16 --》二進制 10000
10000
特色: 任意一個整數要求把它的第三位二進制置0,其它位不容許改變
125--》二進制1111101 --》最終但願的結果1111001
1111101 --》125
1111011 &
1111001
規律: 任何二進制位跟1進行按位與運算結果保持不變
任何二進制位跟0進行按位與運算結果必定是0
按位或 | 只要有一個是1,結果就是1,所有都是0,結果就是0
好比: 18|16結果是多少?
18 --》二進制 10010
16 --》二進制 10000
10010
特色: 用位或運算去設置某一位二進制爲1
規律: 任何二進制位跟0進行按位或運算結果保持不變
任何二進制位跟1進行按位或運算結果必定是1
按位異或 ^ 相同爲0,相異爲1
好比: 18^16結果是多少?
18 --》二進制 10010
16 --》二進制 10000
00010
特色: 將一個數的二進制數的某一位取反
好比: int a=785 第三位二進制取反
785
0000........100 異或
一個數跟本身異或,結果爲0 a^a結果爲0
異或知足交換律 a^b^a等價於 a^a^b
一個數跟0異或,結果保持不變 a^0結果爲a
按位取反 ~ 0變成1 1變成0
好比: ~18結果是多少?
18 --->二進制 10010
~18 ---> 01101
"+=" a+=10; //等價於 a=a+10;
其它的類比,如 -=、/=、*= 等
左移 << 把一個整數的二進制總體向左移動若干位,低位補0
18<<2; //18左移2位
0000000000.........10010<<2
特色: 一個數左移n位,至關於乘以2的n次方
右移 >> 把一個整數的二進制總體向右移動若干位,高位補什麼??
算術右移: 高位補符號位
邏輯右移: 高位補0
特色: 一個數右移n位,至關於除以2的n次方
a++ 後置++ 先使用a本來的值,而後再把a加1賦值給本身
++a 前置++ 先把a加1,而後再使用加一以後的a
a-- 後置-- 先使用a本來的值,而後再把a減1賦值給本身
--a 前置-- 先把a減1,而後再使用減一以後的a
例如:
++i + ++i = ?