1.1 算術運算子:+ - * / % ++ --
其中,前三種就是很平常的加減乘,"/" 表示的是取整,'%'表示的是取餘 ,例如:
12/7 = 1,這裡只取整數部分
12% 7 = 5,這裡是等於餘數部分
"++"是自增1運算子,其功能是使變數的值自增1;
"--"是自減1運算子,其功能是使變數值自減1。
自增1,自減1運算子均為單目運算,都具有右結合性。可有以下幾種形式:
(1) ++i:i 自增1後 再參與其它運算。
(2) --i: i 自減1後 再參與其它運算。
(3) i++:i 參與運算後,i的值再自增1。
(4) i--: i 參與運算後,i的值再自減1。
如:int x,y;
x=10; y=x++; //結果y=x=10, 然後 x=x+1=11
x=10; y=++x; //結果 x=x+1=11,然後 y=x=11
同理,x=10; y=x--; //結果y=x=10, 然後 x=x-1=9
x=10; y=--x; //結果 x=x-1=9,然後 y=x=9
1.2 邏輯運算子:|| && !
"||"表示或,(條件1)||(條件2),只要滿足其中乙個條件即可,當然,這裡需要注意的是:如果條件1已經滿足了,那麼計算機是不會去判斷後面的條件2的;
"&&"表示與,(條件1)&&(條件2),需要兩個條件同時滿足。與上面相似的是,如果第乙個條件不成立,計算機是不會執行第二個條件的。
1.3 位運算子:>> << & | ~
這裡需要注意的是:遇到位運算子首先把數轉換成二進位制
例如:a=16>>2,表示將16右移2位,轉換為二進位制:0001 0000 >> 0000 0100 = 4,即為將1往右移動兩位,還有一種演算法是16/(2^2)=4;
a=16<<2,表示將16左移2位,轉換為二進位制:0001 0000 << 0100 0000 = 64,即為將1往左移動兩位,還有一種演算法是16*(2^2)=64;
總之,左移就是乘以2的移動位數的平方,右移就是除以2的移動位數的平方。
而對於 & 和 | 則主要是用於將某位數快速置1或0,比如說:
將34的第5位置為1,首先將其轉化為二進位制,再通過 | 運算,有1的就合併;
34 = 2^5 + 2^1 = 0010 0010 | 0001 0000 = 0011 0010
將34的第2位置為0,首先將其轉化為二進位制,再通過 & 運算,只有都為1才為真;
34 = 2^5 + 2^1 = 0010 0010 & 1111 1101 = 0010 0000
1.4 賦值運算子: =
1.5 比較運算子: > < >= <= == !=
1.6 特殊運算子: sizeof()
計算物件所佔的位元組數
1.7 逗號運算子: 只取最後乙個表示式的值
例如:a=3,b=5,c=6
若a = ( a + b,a = a + b, c + b ),那麼a應該等於11;
若a = ( a + b,b = a + b, c + b ),那麼a應該等於14,因為此時的b等於8。
1.8 三目運算子:(表示式1)?(表示式2):(表示式3)
如果滿足表示式1,那麼就取表示式2,反之,則取表示式3
舉個簡單的例子:a=3,b=5,(a>b)? c=0:c=1,很明顯,a>b是不成立的,所以應該取c=1。
資料型別(所佔位元組數): int char float double short
32位作業系統 4 1 4 8 2
16位作業系統 2 1 4 4 1
其中,值得注意的是char的有無符號宣告
如果是無符號的unsigned char取值範圍:0000 0000 ~ 1111 1111 = 0 ~ 255
如果是有符號的char 取值範圍是:-128~127,因為第一位是符號位,用0、1表示正負
舉個例子:
signed int a = -16;
unsigned int b = 5;
if ( a + b > 0 ) else
在這個例子中,最終的結果是輸出hello,為什麼呢?這是因為有符號的數和無符號的數相加會轉換成無符號的數,所以a會轉換成乙個正數。同理的是,高精度和低精度相加,會轉換成高精度。
3.1 常量:在程式執行期間值不會發生改變的整型常量:0~9
3.2 字元常量:'a' ~'z'
3.3 字串常量(末尾預設有乙個『\0』):「hello」
3.4 浮點型(實型):3.14
3.5 指數型常量:(次方如果為負,轉化之後需減;若為正,轉換之後需加)
3.14*10^-5 = 3.14e-5
9.56*10^9 = 9.56e+5
3.6 識別符號常量:巨集定義
3.7 識別符號:自定義的由字母、下劃線、數字組成。首字母只能是字母或下劃線。不能和關鍵字重名。
scanf("%d",&a);//從鍵盤上獲取值%d %c %s %f
printf("%d\n",a);
printf("%3d\n",a);
%c: 字元型
%s: 字串
%p: 輸出位址
%f: 浮點型
%lf: 雙精度
c 語言基礎
三個訪問描述符 public private 和protected 都可以修飾類的資料成員和成員函式 public 可以可以被任何訪問,private 只能被該類的公,私成員函式,該類的友元函式或者友元類的成員函式訪問。protected 只能被該類的公,私成員函式和該類的派生類訪問。c 中除了,和...
c語言基礎
1.問題描述 從鍵盤輸入三個整數,分別存入x,y,z三個整型變數中,計算並輸出三個數的和以及平均值。輸入形式 從鍵盤輸入三個整數,整數之間以空格隔開。輸出形式 在螢幕上分兩行顯示結果 第一行為三個數的和,整數形式輸出 第二行為三個數的平均值,浮點數形式輸出,小數點後保留兩位小數。輸入樣例 3 2 3...
C語言基礎
找最大最小整數 2.問題描述 編寫乙個程式,使用者輸入若干整數,試找出其中的最大數和最小數。輸入形式 使用者在第一行待輸入資料個數,在第二行輸入資料。輸出形式 程式在下一行輸出資料的最大值和最小值 樣例輸入 589 62 96 74 52 樣例輸出 96 52 樣例說明 使用者第一次輸入的為資料個數...