C運算符與表達式

跟著肯哥(不是我)學運算符與表達式

運算符

在C語言中,運算符是一種用來執行特定操作的符號或關鍵字。它們用于對變量、常量和表達進行計算、邏輯判斷和位操作等。

定義一般都當耳旁風了

運算符分類

算術運算符

+-*/%加減乘除取模,這沒啥好說的

邏輯運算符:

  • 與:&&
  • 或:||
  • 非:!

這個遵循短路原則,算到前面的時候運算符結果已經確定了,就不會再判斷后面的條件。
比如:與運算第一個條件為假,就沒必要看第二個條件了

關系運算符

  • 等于==
  • 不等于!=
  • 大于>
  • 小于<
  • 大于等于>=
  • 小于等于<=

與小學數學規則相同,也沒什么好說的

位運算符

  • 按位與&
  • 按位或|
  • 按位異或^
  • 左移<<
  • 右移>>

對同一個變量進行兩次異或可以得到原來的值,可以用于簡單的對稱加密

賦值運算

  • 賦值=
  • 復合賦值+=-=*=/=%=&=|=^=<<=>>=

也沒啥好說的

其他運算符

  • 返回變量或數據類型的大小sizeof
  • 取地址&
  • 指針*
  • 條件表達式?:
  • 逗號運算符,

這些也是運算符,這件事,我之前是沒想過的。

運算符的優先級順序

這我直接復制粘貼了,猜你也記不住

以下是常見運算符按照優先級從高到低的順序:

  1. 圓括號:()括號可以用于明確指定運算的優先級,可以改變默認的優先級規則。
  2. 單目運算符:++--(前綴和后綴遞增遞減)、+(正號)、-(負號)、!(邏輯非)、~(位求反)。
  3. 算術運算符:*(乘法)、/(除法)、%(取模)。
  4. 加減運算符:+(加法)、-(減法)。
  5. 移位運算符:<<(左移)和>>(右移)。
  6. 關系運算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
  7. 相等性運算符:==(等于)、!=(不等于)。
  8. 位運算符:&(按位與)、^(按位異或)、|(按位或)。
  9. 邏輯運算符:&&(邏輯與)和 ||(邏輯或)。
  10. 條件運算符:?:(三元運算符)。
  11. 賦值運算符:=(賦值)、+=-=*=/=%=&=^=|=<<=>>=
  12. 逗號運算符:逗號用于分隔表達式,并按照從左到右的順序進行求值。

表達式

表達式是由運算符、操作數和函數調用組成的代碼片段,用于執行特定的計算或操作。表達式可以是簡單的變量、常量,也可以是由運算符連接起來的復雜的組合。

定義就當耳旁風略過了,下面也是從講義搬運過來的:

  • 算術表達式(Arithmetic Expressions):由算術運算符(如+-*/%)和操作數(變量或常量)組成的表達式。算術表達式用于執行基本的數學運算,如加減乘除等。
  • 邏輯表達式(Logical Expressions):由邏輯運算符(如&&||!)和操作數(變量或常量)組成的表達式。邏輯表達式用于執行邏輯判斷,返回布爾值(truefalse)。
  • 關系表達式(Relational Expressions):由關系運算符(如==!=><>=<=)和操作數(變量或常量)組成的表達式。關系表達式用于比較操作數之間的關系,返回布爾值。
  • 位運算表達式(Bitwise Expressions):由位運算符(如&|^<<>>)和操作數(變量或常量)組成的表達式。位運算表達式用于對操作數的內部位進行操作,通常用于位級的操作和優化。
  • 條件表達式(Conditional Expressions):也稱為三元表達式(Ternary Expression),由條件運算符(? :)和三個操作數組成的表達式。條件表達式根據一個條件的結果,選擇返回兩個操作數中的一個。
  • 賦值表達式(Assignment Expressions):由賦值運算符(=+=-=*=/=%=等)和操作數組成的表達式。賦值表達式用于將一個值或表達式的結果賦給變量。
  • 逗號表達式(Comma Expressions):它是一種特殊的表達式,它由逗號操作符(,)分隔的多個子表達式組成。逗號表達式的求值過程從左到右依次求值每個子表達式,并將最后一個子表達式的結果作為整個逗號表達式的結果。
int result =func1(),func2(),func3();

上述代碼中,逗號操作符使得三個函數調用依次執行,且整個語句的結果是最后一個函數的返回值。
這里我想補充的是,鏈式調用。表達式中含有自定義數據類型的時候,應該注意表達式的返回值類型。
比如在C++中,返回的可能是個流對象,而且是全局唯一的對象。

欣賞一段有意思的代碼

image.png
44388c2e3e3b52e8edd56c0dc761dca.jpg
新手寫這樣的代碼:亂七八糟
大佬寫這樣的代碼:優雅

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

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

相關文章

浮點數運算精度丟失,如何解決

為什么浮點數運算的時候會有精度丟失的風險&#xff1f; 浮點數運算精度丟失代碼演示&#xff1a; float a 2.0f - 1.9f; float b 1.8f - 1.7f; System.out.println(a);// 0.100000024 System.out.println(b);// 0.099999905 System.out.println(a b);// false為什么會出現…

everything排除目錄

everything默認搜索所有文件&#xff0c;自己把沒啥必要的目錄都屏蔽掉&#xff0c;記錄如下

ChatGPT/GPT4丨編程助手;AI畫圖;數據分析;科研/項目實現;提示詞工程技巧;論文寫作等

ChatGPT 在論文寫作與編程方面也具備強大的能力。無論是進行代碼生成、錯誤調試還是解決編程難題&#xff0c;ChatGPT都能為您提供實用且高質量的建議和指導&#xff0c;提高編程效率和準確性。此外&#xff0c;ChatGPT是一位出色的合作伙伴&#xff0c;可以為您提供論文寫作的…

【微軟技術棧】使用新的C#功能減少內存分配

本文內容 通過引用傳遞和返回引用安全上下文安全的上下文和 ref 結構統一內存類型通過參考安全提高性能 本節中介紹的技術可提高應用于代碼中的熱路徑時的性能。熱路徑是代碼庫中在正常操作中經常重復執行的部分。將這些技術應用于不經常執行的代碼將產生最小的影響。在進行任何…

[數據結構]-AVL樹

前言 作者&#xff1a;小蝸牛向前沖 名言&#xff1a;我可以接受失敗&#xff0c;但我不能接受放棄 如果覺的博主的文章還不錯的話&#xff0c;還請點贊&#xff0c;收藏&#xff0c;關注&#x1f440;支持博主。如果發現有問題的地方歡迎?大家在評論區指正 目錄 一、AVL樹基…

OpenGL 繪制線(Qt)

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 這里同樣對OpenGL中的繪制線操作進行封裝,便于后續的操作,很多形狀也都是基于線來生成的,如圓形等。 二、實現代碼 LineDrawable.h #ifndef LINE_DRAWABLE_H #define LINE_DRAWABLE_H#include

IBM ELM—系統工程全生命周期管理平臺

產品概述 Engineering Lifecycle Management是IBM提供的工程全生命周期管理組合工具&#xff0c;幫助企業降低開發成本&#xff0c;應對開發挑戰并更快地發展其流程和實踐。 隨著產品變得更加復雜且數字化&#xff0c;傳統的工程開發不再能及時且有效地滿足系統工程的復雜度&a…

【Django-DRF】多年md筆記第5篇:Django-DRF的Request、Response和視圖詳解

本文從分析現在流行的前后端分離Web應用模式說起&#xff0c;然后介紹如何設計REST API&#xff0c;通過使用Django來實現一個REST API為例&#xff0c;明確后端開發REST API要做的最核心工作&#xff0c;然后介紹Django REST framework能幫助我們簡化開發REST API的工作。 Dj…

[點云分割] 基于最小切割的分割

效果&#xff1a; 代碼&#xff1a; #include <iostream> #include <vector>#include <pcl/point_types.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/cloud_viewer.h> #include <pcl/filters/filter_indices.h> #include…

Can‘t open the append-only file: Permission denied

redis rdb aof-CSDN博客 Cant open the append-only file: Permission denied E:\Document_Redis_Windows\redis-2.4.5-win32-win64\64bit E:\Document_Redis_Windows\redis-2.4.5-win32-win64\64bit\redis.conf 還是不行&#xff0c;就要修改權限了&#xff0c;windows【完全控…

matlab 最小二乘擬合平面并與XOY平面對齊

目錄 一、算法原理二、代碼實現1、繞原點對齊2、繞質心對齊三、結果展示1、繞原點對齊2、繞質心對齊四、測試數據本文由CSDN點云俠原創,原文鏈接。爬蟲網站自重。如果你不是在點云俠的博客中看到該文章,那么此處便是不要臉的爬蟲。 一、算法原理 首先,使用最小二乘擬合平面…

priority_queue簡單實現(優先級隊列)(c++)

priority_queue priority_queue介紹邏輯實現框架調整算法adjust_up()adjust_down() 仿函數/比較函數仿函數特性 構造函數迭代器區間構造 完整優先級隊列代碼 priority_queue介紹 pri_que是一個容器適配器&#xff0c;它的底層是其他容器&#xff0c;并由這些容器再封裝而來。類…

C語言指針相關練習題

? C語言指針相關練習題 文章目錄 C語言指針相關練習題題目一題目二題目三題目四題目五題目六題目七 題目一 #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0; }…

[Unity+OpenAI TTS] 集成openAI官方提供的語音合成服務,構建海王暖男數字人

1.簡述 最近openAI官方發布了很多新功能&#xff0c;其中就包括了最新發布的TTS語音合成服務的api接口。說到這個語音合成接口&#xff0c;大家可能會比較陌生&#xff0c;但是說到chatgpt官方應用上的聊天機器人&#xff0c;那個臺灣腔的海王暖男的聲音&#xff0c;可能就有印…

深度合成算法的基礎與原理

深度合成算法是人工智能領域中備受矚目的研究方向之一。它的應用范圍涵蓋了圖像合成、文本生成、音頻合成等多個領域&#xff0c;為人們提供了令人驚嘆的創新和娛樂體驗。本文將深入探討深度合成算法的基礎原理&#xff0c;了解它們是如何工作的以及它們在不同領域的應用。算法…

輕量封裝WebGPU渲染系統示例<38>- 動態構建WGSL材質Shader(源碼)

實現原理: 基于宏定義和WGSL功能文件實現 當前示例源碼github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/DynamicShaderBuilding.ts 當前示例運行效果: 此示例基于此渲染系統實現&#xff0c;當前示例TypeScript源碼如下&#x…

編寫bat程序 快速開啟 redis 服務

一鍵開啟redis服務 編寫txt文件&#xff0c;代碼如下&#xff1a;cd /d E:\Redis\Redis-x64-5.0.14.1 redis-server.exe redis.windows.conf這里的redis的安裝目錄記得改成自己的 將文件后綴的.txt改成.bat&#xff0c;然后雙擊運行就可以啦

前綴和及差分數組

前綴和 原數組x0x1x2x3x4x5前綴和數組x0x0x1x0x1x2x0x1x2x3x0x1x2x3x4x0x1x2x3x4x5前綴和數組代數形式x0’x1’x2’x3’x4’x5’ 計算原數組某區間的和 sum[x1,x2,x3] 利用前綴和計算 x3-x0 x0x1x2x3-x0 x1x2x3 差分數組 x0x1x2x3x4x5原數組x0x1x2x3x4x5差分數組x0x1-x0x…

模擬電路定理

模擬電路是指由電子元件、電路拓撲和信號處理單元等構成的電路&#xff0c;用于模擬現實世界中的信號和系統。在模擬電路中&#xff0c;有許多重要的定理和規律&#xff0c;下面列舉了一些常見的定理。 1. 基爾霍夫電流定律&#xff08;Kirchhoffs Current Law&#xff09; 基…

HTTP四大參數類型及請求參數的方式和如何接收

HTTP 請求中4大參數類型和接收方法。 1、請求頭參數head 請求頭參數顧名思義&#xff0c;是存放在請求頭中發送給服務器的參數&#xff0c;服務器通過解析請求頭獲取參數內容。通常會存放本次請求的基本設置&#xff0c;以幫助服務器理解并解析本次請求的body體。 參數形式如…