今天學習了操作符感覺計算機語言也像其他語言一樣,挺有意思的,分享一下心得吧!
操作符可分爲算術操作符,移位操作符,位操作符,賦值操作符,單目操作符,關係操作符,邏輯操作符,條件操作符。
1算術操作符
+ - * / %
1)除了%操作符之外,其他的幾個操作符可以作用於整數和浮點數。
2)對於/操作符如果兩個操作數都爲整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。
3)%操作符的兩個操作數必須爲整數。返回的是整除之後的餘數。
2 移位操作符
<< 左移操作符
>> 右移操作符
左移操作符移位規則:左邊拋棄、右邊補0
,*右移又分爲兩種,算數移位和邏輯移位,區別如上圖所示
*移位不移負數,其標準未定義
3位操作符
& / /按位與
| // 按位或
^ // 按位異或
注:他們的操作數必須是整數。*注意^和&的區別
4 賦值操作符
賦值操作符是一個很棒的操作符,他可以讓你得到一個你之前不滿意的值。也就是你可以給自己重新賦值。
intweight=120;//體重
weight=89;//不滿意就賦值
doublesalary=10000.0;
salary=20000.0;//使用賦值操作符賦值。
賦值操作符可以連續使用,比如:
inta=10;
intx=0;
inty=20;
a=x=y+1;//連續賦值
這樣的代碼感覺怎麼樣那同樣的語義,你看看:
x=y+1;
a=x;
這樣的寫法是不是更加清晰爽朗而且易於調試。
5賦值操作符
+= = *= /= %= >>= <<= &= |= ^=
這些運算符都可以寫成複合的效果。
6單目操作符
! 邏輯反操作
- 負值 +正值
& 取地址
sizeof 操作數的類型長度(以字節爲單位)
~ 對一個數的二進制按位取反
-- 前置、後置--
++ 前置、後置++
* 間接訪問操作符(解引用操作符)
演示代碼:
#include<stdio.h>
intmain()
{
inta=-10;
int*p=NULL;
printf("%d\n",!2);
printf("%d\n",!0);
a=-a;
p=&a;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(int));
printf("%d\n",sizeofa);//這樣寫行不行?
printf("%d\n",sizeofint);//這樣寫行不行?
return0;
}
7關係操作符
> >= < <= !=(用於測試“不相等”==用於測試“相等”)
這些關係運算符比較簡單,沒什麼可講的,但是我們要注意一些運算符使用時候的陷阱。
*注意編程中將==和=寫錯
8邏輯操作符
&& 邏輯與 || 邏輯或
區分邏輯與和按位與
區分邏輯或和按位或
對於參加運算的數要換算爲二進制進行運算,例如3 & 2的結果是2,過程如下:
3 & 2
=0111 & 0010
=0010
=2
9條件操作符
exp1?exp2:exp3
例子
b=(a>5?3:-3)