算數運算符和算數表達式

基本算數運算符

算數運算符:

+(加法運算符或正值運算符)、-(減法運算符或負值運算符)、*(乘)、/(除)、%(求余數)

雙目運算符:

雙目運算符兩邊的數值類型必須一致才能進行運算,如果不一致,系統要先進性一致性轉換,即運算符兩邊的數值類型向更高級別的一方保持一致

轉換規則:

char->short->int->unsigned->long->float->double

數據精度:

所有實數的運算都以雙精度方式進行,若是單精度,則需要在尾數后面補0轉換為雙精度數。

算數表達式和運算符的結合性和優先級

定義:

用算數運算符和括號將運算量連接起來的、符合C語言語法規則的表達式

運算對象:

函數、常量、變量等

可使用多層圓括號,但括號必須配對。運算時由內向外依次計算各表達式的值

對于不同優先級的運算符,按照運算符的優先級由高到低進行運算,若優先級相同,則按照結合方向進行運算

若運算符兩側的操作數類型不同,則先利用自動轉換或強制類型轉換,然后進行計算。

自加、自減運算符:

作用:

自加運算符“++”使運算變量的值增1,自減運算符“--”使運算變量的值減1

性質:

運算對象是整型或實型變量,但是不能對常量或表達式進行運算。均為單目運算符。

規則:

既可以作為前綴運算符,又可以作為后綴運算符

++i--i:先使i的值加1或減1,在使用i的值

i++i--:先使用i的值,再使i的值加1或減1

結合方向:

自左向右

賦值運算符與賦值表達式

“=”稱作為賦值運算符,作用是將一個數值賦值給一個變量或將一個變量的值賦值給另一個變量,由賦值運算符組成的表達式為賦值表達式

一般形式:

變量名=表達式

注意事項:

賦值運算符的優先級別高于逗號運算符

賦值運算符“=”有別于關系運算符“==”

賦值運算符的左側只能是變量,不能是常量或表達式。右側可以是表達式,也包括賦值表達式

賦值表達式將最后賦值的值作為最終結果

復合賦值運算符

定義:

在賦值運算符的前面加上其他運算符就構成了符合賦值運算符,包括+=、-+、*=、/=、%=、<<=、>>=、&=、^=、|=

注意事項:

兩個符號之間不可以由空格

符合賦值運算符的優先級與賦值運算符的相同

賦值運算中的類型轉換

當賦值運算符兩側的類型不一致時,在賦值前系統將自動把右側表達式求得的數值按照賦值號左邊的變量類型進行轉換(也可以用強制類型轉換的方式)

常見題型與易錯題

解析:

printf輸出的數據都隱含右對齊

scanfprintf都是C語言提供的庫函數,不是語句

賦值語句時一種執行語句,必須放在函數的可執行部分才行

printf輸出數據所占的寬度由系統決定

解析:

++i;? --i;? 也可以算賦值語句

位運算

C原因呢提供的6種位運算符

位運算的相關說明

操作數個數:

位運算種除了反“~”運算之外,其他所有位運算都是雙目運算,要求運算符兩側各有一個操作數。

操作數類型:

位運算的操作數類型只針對整型或字符型數據,不能對實型數據進行位運算操作。

注意事項:

位運算僅作計算,不改變原有變量的值,只有賦值運算和自增自減運算才會改變原有變量的值。

常見題型與易錯題

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

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

相關文章

四則運算 .

輸入一個表達式&#xff08;用字符串表示&#xff09;&#xff0c;求這個表達式的值。 保證字符串中的有效字符包括[‘0’-‘9’],‘’,‘-’, ‘*’,‘/’ ,‘(’&#xff0c; ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表達式一定合法。字符串長度滿足1≤n≤1000 輸入描述&#x…

CGAL的2D符合規定的三角剖分和網格

1、符合規定的三角剖分 1.1、定義 如果三角形的任何面的外接圓在其內部不包含頂點&#xff0c;則該三角形是 Delaunay 三角形。 約束 Delaunay 三角形是一種盡可能接近 Delaunay 的約束三角形。 約束 Delaunay 三角形的任何面的外接圓在其內部不包含從該面可見的數據點。 如果…

陀螺儀LSM6DSV16X與AI集成(3)----讀取融合算法輸出的四元數

陀螺儀LSM6DSV16X與AI集成.2--姿態解算 概述視頻教學樣品申請完整代碼下載使用demo板生成STM32CUBEMX串口配置IIC配置CS和SA0設置串口重定向參考程序初始化SFLP步驟初始化SFLP讀取四元數數據演示 概述 LSM6DSV16X 特性涉及到的是一種低功耗的傳感器融合算法&#xff08;Sensor…

MySQL之創建時間類型的字段表

mysql之創建時間類型的字段表 CREATE TABLE tab(birthday DATE, -- 生日job_time DATETIME, -- 記錄年月日時分秒login_time TIMESTAMP -- 時間戳NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )解釋&#xff1a; NOT NULL DEFAULT &#xff1a;默認不為空…

css未來:使用light-dark()切換主題色

css未來&#xff1a;使用light-dark()切換主題色 要根據使用的是淺色模式還是深色模式來更改顏色&#xff0c;我們通常會使用 prefers-color-scheme 媒體查詢。為了讓代碼實現變得更容易&#xff0c;CSS 現在附帶了一個名為 light-dark() 的實用函數。該函數接受兩個顏色值作為…

編譯原理lab3-cminus_compiler-LLVM簡要熟悉

lab3實驗報告&#xff0c;我的實驗報告圖例很少&#xff0c;這次只有兩張圖&#xff0c;其余的都以復制輸出的形式展現出來了&#xff0c;最終提交的代碼在最后 [[#你的提交|你的提交]][[#實驗設計|實驗設計]][[#提交一&#xff1a;手動編寫.ll|提交一&#xff1a;手動編寫.ll…

TREK610C高壓放大器

181/2461/8938技術規格 輸出電壓&#xff1a;0到10 kV直流電壓 輸出電流&#xff1a;0到2 mA 轉換率&#xff1a;大于500 V/μs 信號帶寬&#xff1a;直流到1.0 kHz &#xff08;-3dB&#xff09; 放大倍數&#xff1a;1000 V/V 閉環系統以保持低噪音、高精確度電壓輸出 短…

最簡單的基于 FFmpeg 的音頻解碼器

最簡單的基于 FFmpeg 的音頻解碼器 最簡單的基于 FFmpeg 的音頻解碼器正文參考工程文件下載 參考雷霄驊博士的文章&#xff0c;鏈接&#xff1a;最簡單的基于FFMPEGSDL的音頻播放器&#xff1a;拆分-解碼器和播放器 最簡單的基于 FFmpeg 的音頻解碼器 正文 FFmpeg 音頻解碼器…

【ArcGIS微課1000例】0080:ArcGIS將shp轉json(geojson)案例教程

本文以案例的形式,講述在ArcGIS軟件中,將矢量數據轉為GeoJSON的方法。 擴展閱讀:【GIS風暴】GeoJSON數據格式案例全解 文章目錄 一、GeoJson簡介二、ArcGIS將矢量數據轉為GeoJSON一、GeoJson簡介 GeoJSON是一種基于JSON的地理空間數據交換格式,它定義了幾種類型JSON對象以…

Spring Cloud Gateway 網關的基礎使用

1. 什么是網關&#xff1f;網關有什么用&#xff1f; 在微服務架構中&#xff0c;網關就是一個提供統一訪問地址的組件&#xff0c;它解決了內部微服務與外部的交互問題。網關主要負責流量的路由和轉發&#xff0c;將外部請求引到對應的微服務實例上。同時提供身份認證、授權、…

Spring-Boot---配置文件

文章目錄 配置文件的作用配置文件的格式PropertiesProperties基本語法讀取Properties配置文件 ymlyml基本語法讀取yml配置文件 Properties VS Yml 配置文件的作用 整個項目中所有重要的數據都是在配置文件中配置的&#xff0c;具有非常重要的作用。比如&#xff1a; 數據庫的…

230. 二叉搜索樹中第K小的元素 --力扣 --JAVA

題目 給定一個二叉搜索樹的根節點 root &#xff0c;和一個整數 k &#xff0c;請你設計一個算法查找其中第 k 個最小元素&#xff08;從 1 開始計數&#xff09;。 解題思路 利用List存儲數據&#xff1b;遍歷整個樹&#xff0c;讀取數各個節點的value&#xff1b;對value進行…

Python繪制多分類ROC曲線

目錄 1 數據集介紹 1.1 數據集簡介 1.2 數據預處理 2隨機森林分類 2.1 數據加載 2.2 參數尋優 2.3 模型訓練與評估 3 繪制十分類ROC曲線 第一步&#xff0c;計算每個分類的預測結果概率 第二步&#xff0c;畫圖數據準備 第三步&#xff0c;繪制十分類ROC曲線 1 數據集…

【數據結構】——排序篇(上)

前言&#xff1a;前面我們已經學過了許許多多的排序方法&#xff0c;如冒泡排序&#xff0c;選擇排序&#xff0c;堆排序等等&#xff0c;那么我們就來將排序的方法總結一下。 我們的排序方法包括以下幾種&#xff0c;而快速排序和歸并排序我們后面進行詳細的講解。 直接插入…

Qt實現二維碼生成和識別

一、簡介 QZxing開源庫: 生成和識別條碼和二維碼 下載地址&#xff1a;https://gitcode.com/mirrors/ftylitak/qzxing/tree/master 二、編譯與使用 1.下載并解壓&#xff0c;解壓之后如圖所示 2.編譯 打開src目錄下的QZXing.pro&#xff0c;選擇合適的編譯器進行編譯 最后生…

util.js

一、util.js是什么&#xff1f; 1、util.js是Node.js提供的一個工具庫&#xff0c;主要用于輔助實現JavaScript代碼的通用功能。 2、除了Node.js中內置的模塊外&#xff0c;util.js是Node.js中最核心的模塊之一。 3、通過util.js&#xff0c;開發者可以輕松實現JavaScript常…

Unity 資源管理之StreamingAssets

StreamingAssets也是Unity中特殊的文件夾&#xff0c;用于存放運行時可以直接訪問的資源。StreamingAssets一般存放數據或配置文件、圖片、視頻資源等。 StreamingAssets的文件路徑可以通過Application.streamingAssetsPath來獲取。 加載或訪問使用WWW類或UnityWebRequest類。…

MIT6S081-Lab2總結

大家好&#xff0c;我叫徐錦桐&#xff0c;個人博客地址為www.xujintong.com&#xff0c;github地址為https://github.com/xjintong。平時記錄一下學習計算機過程中獲取的知識&#xff0c;還有日常折騰的經驗&#xff0c;歡迎大家訪問。 Lab2就是了解一下xv6的系統調用流程&…

Java - Synchronized的鎖升級之路

Synchronized鎖 Synchronized在Java JVM里的實現是基于進入和退出Monitor對象來實現方法同步和代碼塊同步的 monitor enter指令是在編譯后插入到同步代碼塊的開始位置 而monitor exit是插入到方法結束處和異常處 JVM要保證每個monitor enter必須有對應的monitor exit與之配對。…

解決服務端渲染程序SSR運行時報錯: ReferenceError: document is not defined

現象&#xff1a; 原因&#xff1a; 該錯誤表明在服務端渲染 (SSR) 過程中&#xff0c;有一些代碼嘗試在沒有瀏覽器環境的情況下執行與瀏覽器相關的操作。這在服務端渲染期間是一個常見的問題&#xff0c;因為在服務端渲染期間是沒有瀏覽器 API。 解決辦法&#xff1a; 1. 修…