網站首頁 編程語言 正文
算術操作符
主要是 (+ - * / %) 五種算數操作符。
1、除了 % 操作符之外,其他的幾個操作符可以作用于整數和浮點數。
2、對于 / 操作符如果兩個操作數都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除 法。
3、% 操作符的兩個操作數必須為整數。返回的是整除之后的余數。
當除數為小數時,int類型只會截取整數部分。
移位操作符
<< 左移操作符
>> 右移操作符
左移操作符 移位規則: 左邊拋棄、右邊補0
右移操作符 移位規則:
首先右移運算分兩種:
1. 邏輯移位 左邊用0填充,右邊丟棄
2. 算術移位 左邊用原該值的符號位填充,右邊丟棄
警告? :對于移位運算符,不要移動負數位,這個是標準未定義的。
例如:
int num = 10;
num>>-1;//error
位操作符
& 按位與:1 1為1;1 0為0;0 0為0。
| 按位或 :1 1為1;1 0為1;0 0為0。
^ 按位異或 :1 1為0;1 0為1;0 0為0。
注:他們的操作數必須是整數。
練習一下:
#include <stdio.h>
int main(){
int num1 = 1;
int num2 = 2;
num1 & num2;
num1 | num2;
num1 ^ num2;
return 0;
}
不能創建臨時變量(第三個變量),實現兩個數的交換。
#include <stdio.h>
int main(){
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\n", a, b);
return 0;
}
賦值操作符
"="
注意:這是賦值操作符,并不是等于。c語言中的等于是"=="。
復合賦值符
+= -= *= /= %= >>= <<= &= |= ^=
符合賦值操作符與其他運算符一樣的道理。這樣寫更加簡潔
單目操作符
! 邏輯反操作
- 負值
+ 正值
& 取地址
* 間接訪問操作符(解引用操作符)
sizeof 操作數的類型長度(以字節為單位)
~ 對一個數的二進制按位取反
-- 前置、后置--
++ 前置、后置++
//++和--運算符
//前置++和--
//前置++和--:
#include <stdio.h>
int main()
{
int a = 10;
int x = ++a;
//先對a進行自增,然后對使用a,也就是表達式的值是a自增之后的值。x為11。
int y = --a;
//先對a進行自減,然后對使用a,也就是表達式的值是a自減之后的值。y為10;
return 0;
}
//后置++和--
#include <stdio.h>
int main()
{
int a = 10;
int x = a++;
//先對a先使用,再增加,這樣x的值是10;之后a變成11;
int y = a--;
//先對a先使用,再自減,這樣y的值是11;之后a變成10;
return 0;
}
(類型) 強制類型轉換
強制類型轉換是通過類型轉換運算來實現的。其一般形式為:(類型說明符)(表達式)其功能是把表達式的運算結果強制轉換成類型說明符所表示的類型。自動轉換是在源類型和目標類型兼容以及目標類型廣于源類型時發生一個類型到另一類的轉換。例如: (float) a 把a轉換為浮點型,(int)(x+y) 把x+y的結果轉換為整型。
關系操作符
>
>=
<
<=
!= 用于測試“不相等”
== 用于測試“相等”
這些關系運算符比較簡單,但是我們要注意一些運算符使用時候的陷阱
警告: 在編程的過程中 == 和 = 不小心寫錯,導致的錯誤。
邏輯操作符
&& 邏輯與 || 邏輯或
區分 邏輯與 和 按位與 區分 邏輯或 和 按位或
#include <stdio.h>
int main(){
int i = 0,a=0,b=2,c =3,d=4;
i = a++ && ++b && d++;
//i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
條件操作符
exp1 ? exp2 : exp3
原文鏈接:https://blog.csdn.net/qq_56627079/article/details/117955955
相關推薦
- 2022-11-22 Linux實現自動掛載autofs的方法詳解_Linux
- 2022-06-01 Python實現圖像的二進制與base64互轉_python
- 2022-12-24 TS裝飾器bindThis優雅實現React類組件中this綁定_React
- 2023-09-12 linux的root用戶,用戶組
- 2022-10-25 Python繪制loss曲線和準確率曲線實例代碼_python
- 2022-07-06 Python中的字符串相似度_python
- 2023-05-07 Python?Matplotlib中使用plt.savefig存儲圖片的方法舉例_python
- 2022-05-12 android okHttp網絡請求封裝
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支