C語言編程3:運算符,運算符的基本用法

C語言3🔥:運算符,運算符的基本用法

一、運算符🌿

🎇1.1 定義

運算符是指進行運算的動作,比如加法運算符"+“,減法運算符”-"

算子是指參與運算的,這個值可能是常數,也可能是變量,還可能是一個方法的返回值

🎇1.2 單目運算符

只有一個算子的運算符: +,-

例如-a,-b,+a,+b

常用的單目運算符:

+正值
-負值
邏輯反
&取地址
sizeof操作數的類型長度(計算的是變量/類型所占空間的大小,單位是字節)
~對一個數的二進制按位取反
(類型)強制類型轉換

🎇1.3 雙目運算符

  • 我們已知,只有一個算子的運算符是單目運算符

  • 那么, 有兩個算子的運算符就是雙目運算符

  • 如:a+bb-a

  • 那么,有三個算子的運算符就是三目運算符

🎇1.4 賦值運算符

賦值(=) 也是運算,也有結果

舉個栗子

a=6的結果是a被賦予的值,也就是6

a=b=6在計算機中可以看成是:a = (b=6),也就是,先把6賦給b(此時b的值就是6),然后再把b的值(6)賦給a,所以a的值也是6

= += -= *= /= &= ^= I= >>= <<=

用法:

a+=3 相當于:a=a+3

a-=6 相當于:a=a-6

代碼示例如下:


#include <stdio.h>int main()
{int a=6,b=6;                  //初始化a+=3;                         //計算b=b+3;printf("a=%d,b=%d\n",a,b);     //輸出運算結果return 0;
}

運行結果:


a=9,b=9

解析: a+=3 相當于 a=a+3,把a=6的值代入得:a=6+3 a的值:9

🎇1.5 運算符優先級

🎇1.6 算數運算符(特別重要)

+加法運算符
-減法運算符
*乘法運算符
/除法運算符
%取余運算符
/ 的用法:
int a,b,c,d,e,f,g;a=5/2;
b=12345/10000;
c=12345/1000;
d=12345/100;
e=12345/10;printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d",a,b,c,d,e);

運行結果:


a=2
b=1
c=12
d=123
e=1234

解析

a=5/2

5/2=2.5,由于a是整型(int),整形不包含小數部分,在計算時會把小數部分全部舍棄,所以a=5/2中a的結果是2

b=12345/10000 與e=12345/10 (我的想法:12345/10000,除數有幾個零,被除數就舍棄幾位數,如12345/10000,除數有4個零,那么被除數就舍棄后面四位數,所以答案就是:1)

由于b與e是整型(int),整形不包含小數部分,在計算時會把小數部分全部舍棄

所以b的值為1,e的值為1234。

% (取余) 的用法:
int a,b,c,d,e;a=1%3;
b=1%2;
c=30%90;
d=12345%10000;
e=12345%10;printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d",a,b,c,d,e);

運行結果


a=1
b=1
c=30
d=2345
e=5

解析:

a=1%3,c=30%90的解析如右 ,1向3取余,1除以3余1。同上30%90=30

1%2 1向2取余 1除以2=0.5,由于是int類型會舍棄小數,所以1/2的值只能是0,所以原來的除數1,還會留下了,所以1%2=1

d=12345%10000,e=12345%10

所以12345除以10000的余數就是:2345,12345除以10,余5

所以 :d=12345%10000=2345,e=12345%10=5

🎇1.7 關系運算符

“==”判斷相等
“!=”不等于
“>”大于
“<”小于
“>=”大于等于
“<=”小于等于

關系運算符的結果:判斷如果結果是 true(真) 則為 1

判斷如果結果是 false(假)則為 0

用法:
int a=7,b=3,c;a==b        //的值是0,因為a不等于b,所以是false(假),所以值是0
a!=b        //的值是1,a不等于b,判斷正確,所以是true(真),所以值是1

🎇1.8 邏輯運算符

邏輯運算是對邏輯量進行的運算,結果只有0或者1

邏輯量關系運算邏輯運算的結果

用代碼表示: a大于等于1,小于等于6

a>=1 && a<=6;

邏輯優先級

! > && > ||

短路:
  1. 邏輯運算是自左向右進行的,如果左邊的結果已經能夠決定結果了,就不會做右邊的計算了

  2. 對于&&,左邊是false時就不會做右邊的運算了

  3. 對于||,左邊是true時就不會做右邊的運算了

  4. 不要把賦值,包括復合賦值組合進表達式

總體優先級排名:
優先級運算符結合性
1()從左到右
2!± ++ –從右到左(單目的+和-)
3- / %從左到右
4+ -從左到右
5< <= > >=從左到右
6== !=從左到右
7&&從左到右
8
9= += -= *= /= %=從右到左

🎇1.9 位運算符

“&”按位與
“I”按位或
“<<”左移
“>>”右移

🎇1.10 條件運算符:

? : ;

如:


int count=30;count = (count>20)?count-10:count+10;意思是如果條件滿足,count如果>20;則count-10,否則就是執行count+10

也就是說:當count>20是 真(非零或1) 的時候執行前者,是 假(0) 執行后者

優先級:條件運算符的優先級高于賦值運算符,但是低于**其他運算符

🎇1.11 逗號運算符

逗號用來連接兩個表達式,并以其右邊的表達式的值作為它的結果。逗號的優先級是所有運算符中最低的,所以它兩邊的表達式會先計算;逗號的組合關系是自左向右,所以左邊的表達式會先計算,而右邊的表達式的就留下來作為逗號運算的結果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43258.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43258.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43258.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自動化測試高級控件交互方法:TouchAction、觸屏操作、點按,雙擊,滑動,手勢解鎖!

在自動化測試領域中&#xff0c;TouchAction 是一種非常強大的工具&#xff0c;它允許我們模擬用戶在設備屏幕上的各種觸摸事件。這種模擬不僅限于簡單的點擊操作&#xff0c;還包括滑動、長按、多點觸控等復雜的手勢。 點按與雙擊 點按和雙擊是觸屏設備上最基本的操作之一。…

使用 Qt 和 ECharts 進行數據可視化

文章目錄 示例圖表預覽折線圖散點圖柱狀圖使用 Qt 和 ECharts 進行數據可視化一、準備工作1. 安裝 Qt2. 準備 ECharts二、在 Qt 中使用 ECharts1. 創建 Qt 項目2. 配置項目文件3. 在 UI 中添加 WebEngineView4. 加載 ECharts三、創建折線圖、散點圖和柱狀圖1. 折線圖2. 散點圖3…

Jupyter Notebook的安裝教程

以下是一個詳細的 Jupyter Notebook 安裝教程&#xff0c;適用于大多數操作系統&#xff1a; Windows 系統 1. 安裝 Python 訪問 Python 官網&#xff0c;下載并安裝適合你系統的 Python 版本。在安裝過程中&#xff0c;確保勾選“Add Python 3.x to PATH”選項&#xff0c;…

sizeof跟strlen的用法及差異

sizeof是一個操作符&#xff0c;不是函數&#xff1b; 而strlen是一個庫函數&#xff1b; sizeof是計算所占內存空間的&#xff0c;不管你內容是什么&#xff0c;只要知道占多少內存&#xff0c; 而strlen是跟內容有關的&#xff0c;它是計算字符串長度的&#xff08;字符數…

java —— tomcat 部署項目

一、通過 war 包部署 1、將項目導出為 war 包&#xff1b; 2、將 war 包放置在 tomcat 目錄下的 webapps 文件夾下&#xff0c;該 war 包稍時便自動解析為項目文件夾&#xff1b; 3、啟動 tomcat 的 /bin 目錄下的 startup.bat 文件&#xff0c;此時即可從瀏覽器訪問項目首頁…

diff 算法原理及實現

Diff 算法是用于比較兩個虛擬 DOM 樹的差異&#xff0c;并以最小的操作代價將舊的 DOM 樹更新為新的 DOM 樹的一種算法。 Diff 算法的高效實現對于提高前端應用的性能和用戶體驗至關重要&#xff0c;尤其是在頻繁更新組件狀態導致 DOM 頻繁更新的情況下。 1. 原理 1.1 樹層級…

【Linux】文件內容查看命令——cat,tac,more,less,head,tail,od

如果我們要查看一個文件的內容時&#xff0c;該如何是好&#xff1f; 這里有相當多有趣的命令可以來分享一下&#xff1a;最常使用的顯示文件內容的命令可以說是cat與more及less了。 此外&#xff0c;如果我們要查看一個很大的文件&#xff08;好幾百MB時)&#xff0c;但是我們…

java中Comparator函數的用法實例?

在Java中&#xff0c;Comparator接口用于比較兩個對象的順序&#xff0c;常用于集合的排序。自Java 8開始&#xff0c;Comparator接口得到了增強&#xff0c;提供了許多默認方法&#xff0c;使得排序邏輯更加靈活和強大。下面將通過幾個實例來展示Comparator的用法。 示例1&am…

使用PyTorch設計卷積神經網絡(CNN)來處理遙感圖像Indian Pines數據集

目錄 使用PyTorch設計卷積神經網絡&#xff08;CNN&#xff09;來處理遙感圖像Indian Pines數據集&#xff0c;以下是設計和實現這些網絡的步驟&#xff1a; 1.數據準備&#xff1a; 1.1 首先&#xff0c;需要加載Indian Pines數據集。 1.2 將數據集轉換為PyTorch張量&#x…

LLM推理引擎怎么選?TensorRT vs vLLM vs LMDeploy vs MLC-LLM

LLM擅長文本生成應用程序&#xff0c;如聊天和代碼完成模型&#xff0c;能夠高度理解和流暢。但是它們的大尺寸也給推理帶來了挑戰。有很多個框架和包可以優化LLM推理和服務&#xff0c;所以在本文中我將整理一些常用的推理引擎并進行比較。 TensorRT-LLM TensorRT-LLM是NV發布…

imazing電腦怎么下載 imazing怎么下載軟件 使用iMazing下載和卸載Apple設備上的應用程序

iMazing官方版是一款管理蘋果設備的軟件&#xff0c;是一款幫助用戶管理 iOS手機的PC端應用程序&#xff0c;能力遠超 iTunes 提供的終極 iOS 設備管理器。在iMazing官方版上與蘋果設備連接后&#xff0c;可以輕松傳輸文件&#xff0c;瀏覽保存信息等&#xff0c;功能比iTunes更…

泛微開發修煉之旅--35關于基于頁面擴展和自定義按鈕實現與后端交互調用的方法

文章鏈接&#xff1a;35關于基于頁面擴展和自定義按鈕實現與后端交互調用的方法

vue3中使用 tilwindcss報錯 Unknown at rule @tailwindcss

解決方法&#xff1a; vscode中安裝插件 Tailwind CSS IntelliSense 在項目中的 .vscode中 settings.json添加 "files.associations": {"*.css": "tailwindcss"}

基于YOLOv9的腦腫瘤區域檢測

數據集 腦腫瘤區域檢測&#xff0c;我們直接采用kaggle公開數據集&#xff0c;Br35H 數據中已對醫學圖像中腦腫瘤位置進行標注 數據集我已經按照YOLO格式配置好&#xff0c;數據內容如下 數據集中共包含700張圖像&#xff0c;其中訓練集500張&#xff0c;驗證集200張 模型訓…

Perl語言入門到高級學習

Perl語言介紹 Perl,全稱為Practical Extraction and Report Language,即“實用報表提取語言”,是一種高級、通用、直譯式、動態的編程語言。Perl最初由Larry Wall設計,并于1987年12月18日首次發布。經過多年的不斷發展和更新,Perl已經成為一種功能豐富且應用廣泛的計算機程…

AI繪畫:藝術與科技的交融,創新浪潮與無限可能

在科技日新月異的當下&#xff0c;AI 繪畫作為人工智能領域的一顆璀璨新星&#xff0c;正以驚人的速度在國內嶄露頭角&#xff0c;引發了藝術與技術交融的全新變革。隨著人工智能技術的飛速發展&#xff0c;AI繪畫已成為藝術與科技交融的新寵。2024年&#xff0c;AI繪畫行業在國…

昇思MindSpore學習筆記2-03 LLM原理和實踐--基于MindSpore通過GPT實現情感分類

摘要&#xff1a; 昇思MindSpore AI框架中使用openai-gpt的方法、步驟。 沒調通&#xff0c;存疑。 一、環境配置 %%capture captured_output # 實驗環境已經預裝了mindspore2.2.14&#xff0c;如需更換mindspore版本&#xff0c;可更改下面mindspore的版本號 !pip uninsta…

Autogen智能體實戰-Autogen框架介紹

文章目錄 一&#xff0c;Autogen簡介二&#xff0c;Autogen原理1&#xff0c;Autogen原理圖解2&#xff0c;拆解Autogen是如何完成繪制特斯拉股票趨勢圖的 這篇文章介紹一個開源的Agent框架-微軟的Autogen。 一&#xff0c;Autogen簡介 官網:https://microsoft.github.io/aut…

前端頁面操作防抖函數封裝及應用

1、使用背景 函數防抖其實是作為一名前端同學必備的技能了&#xff0c;之前一直偷懶都借用頁面loading或者按鈕loading來實現。最近在開發微信小程序&#xff0c;過多的loading會帶來不好的體驗&#xff0c;同時在跳轉頁面的時候&#xff0c;不好用loading來防抖。所以就會出現…

【Unity】RPG2D龍城紛爭(九)戰斗系統之角色移動

更新日期:2024年7月8日。 項目源碼:第五章發布(正式開始游戲邏輯的章節) 索引 簡介一、角色戰斗狀態二、角色移動1.角色起飛(移動前)2.角色降落(移動后)3.生成移動路徑4.角色移動三、整合簡介 之前的章節做了這么多準備工作,現在終于要進入我們最為核心的戰斗系統的編…