c語言的操作符有很多種,也很重要,可分為以下幾類:
1.算術操作符:+ - * / %
除法中:倆個整形相除結果也等於整形;含有浮點型的除法中結果也為浮點型。
% :模運算只能用於整數,因為有小數點時,為浮點數運算,浮點數除法中不存在小數。
int main()
2.移位操作符:>> <<
左移<< 左邊直接拋棄,右邊補0 001 << 2 = 100
右移》 算術右移:右邊拋棄,左邊補符號位;邏輯右移: 直接補0;
【注意】移位不能用於負數。
乙個整數右移相當於這個整數除2;
num>>1==num/2 所以除2的時候可以用右移代替;
0x40000000 << 1 = -2的31次方
左移n位,相當於num乘以2的n次方。
3.位操作符:& | ^
位操作符在c中很少出現,但很重要;
& 按位與 1&0=0 1&1=1;
特點:某一位與上1為它本身,所以&可以用來取出二進位制中的某位;
| 按位或 1|0=1
^ 按位異或 1^0=1 1^1=0 0^0=0
特點 設:a^b==c; c^b==a; c^a==b; 三個數直接異或存在自反性(自己理解)
3.賦值操作符:=
復合賦值操作符: += -= *= /= >= <= == !=
num+=1; num=num+1;
num-=1; num=num-1;
4.單目操作符: ! - + & sizeof ~ -- ++ * (型別)
!:邏輯反操作,真變為假,假變為真;
int num = 20
int arr[10] = ;
printf("%p\n",&num);
printf("%p\n",arr);//arr表示陣列首元素的位址
printf("%p\n"arr[0]);//首元素位址
printf("%p\n",&arr);//這裡arr表示整個陣列,對整個陣列取位址為首元素位址
sizeof:計算長度
sizeof (int);
sizeof (num);
sizeof num;以上3種表示方法都可以,但不能表示為
siozeof int;
~ :二進位制按位取反
* :解引用
int *p = #
*p = 20;
(型別):強制型別轉換
5.關係操作符: > < >= <= == !=
== :等於 注意與賦值=區分
防止寫錯可以寫為
if(5==i)
6.邏輯操作符: && ||
&& :邏輯與 1&&1為真 當&&左邊為0時,右邊將不再計算
|| :邏輯或 1||0為真 當||左邊為1時,右邊將不再計算
7.條件操作符: exp?exp1:exp2
如果條件exp成立返回1,否則返回2;
c語言操作符 位操作符 移位操作符
1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...
C語言 , 操作符
例如 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為cout hello world endl 例如 define concatenate x,y x y int xy 10 將會使編譯器把 cout conc...
C語言操作符
操作符的分類 1 算術操作符 2 移位操作符 3 位操作符 4 賦值操作符 5 單目操作符 6 關係操作符 7 邏輯操作符 8 條件操作符 9 逗號表示式 1 算術操作符 1 除了 操作符之外,不能用於浮點數。2 對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。...