printf 與前置++、后置++、前置--、后置-- 的關系

# 前置++和前置--

先看一段代碼? ?

大家是不是認為printf輸出的是?

2? 3? 3?

2? 1? 1

但是實際輸出的是

3? 3? 3

1? 1? 1?

?在這兩行printf函數代碼里,編譯器會先計算 ++a 和 --a 的值,然后再? 從右向左 開始輸出。?

?printf函數中,如果有多個 前置++?或者 前置-- ,先 從右向左 計算最終的值,再 從右向左 輸出最終的值

?printf 函數中,如果 前置++?與 前置-- 同時存在,會像上面的例子,先 從右向左 按順序計算出最終的值,再 從右向左 輸出最終的值

# 后置++ 和 后置--

先看這段代碼

從上面的代碼可以得知:

printf函數會從最右邊的帶有 后置++ 或 后置-- 的代碼 開始運行輸出,然后再跳到下一個帶有 后置++ 或 后置-- 的代碼 運行輸出,計算出最終的值后再 從右向左 向沒有帶++或--的代碼 輸出最終的值.

a = 2;

printf("%d %d %d\n", a++,? ? ?a? ?,? ?a++);??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1) (2) (3)

( 后置-- 和 后置++ 與 后置-- 混合 也是如此)就比較如這個例子:

? ?第(3)的?a++ 會先運行輸出 2 ,然后加 1 變成 3 ;

? ?之后跳到(1)的?運行輸出 3 ,然后 加 1 變成 4 ;

? ?左邊已經沒有帶有 后置++ 的a,這時候 編譯器就會從 最右邊開始 向左沒有帶 操作符的a 輸出? ? ???最終的值,即 4 ;

? ?最終的輸出結果就為 3 4 2

# 后置++、后置-- 與 前置++、前置-- 混合

?這里先說 運行法則:前置類型運行不打印;后置類型即打印也運行;無符號類型的和前置類型的等到 從右到左 計算完最終值后打印最終值

用上面的例子來說明

首先,還是從最右邊帶符號的開始?從右向左 計算 帶符號的代碼

?從第(5)--a 開始計算,先運行 --符 ——>?a -?1,計算后?a = 1,因為 --a 是前置類型,這時不輸出打印

?第(4)a-- 帶有符號,是后置類型,先打印前面傳來的 1再運行 -- 符 —> a?- 1, 計算后a = 0

?第(3)++a 帶有符號 ,前置類型,先運行 ++符 ——> a = 1, 計算后 a = 1,因為 ++a 是前置類型,這時不輸出打印

?第(2)a 不帶符號跳過它,來到帶有符號的第(1)a++,后置類型,先打印前面傳來的 1,再運行 ++?符 —> a +?1, 計算后a = 2

?到這我們已經計算出后值類型?:第(4)a--的值 1和第(1)a++的值1了;和最終的值 2 了

?接下就輸出無符號類型的和前置類型的值,從右到左 打印最終值 2?

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

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

相關文章

永磁同步電機無速度算法--反電動勢觀測器

一、原理介紹 在眾多無位置傳感器控制方法中,低通濾波反電勢觀測器結構簡單,參數整定容易,易于編程實現。但是該方法估計出的反電勢會產生相位滯后,需要在估計永磁同步電機轉子位置時進行了相位補償。 二、仿真模型 在MATLAB/si…

VS2015 c++和cmake配置編程

Visual Studio 2015:確保安裝了C開發工具,并安裝“使用C的桌面開發”工作負載。CMake:可以從 CMake官網 下載并安裝,并將其添加到系統環境變量中。vs加載項目啟動Visual Studio。選擇“繼續但無代碼”。點擊“文件”。選擇 “打開…

大語言模型揭秘:從誕生到智能

引言 在人工智能飛速發展的今天,大語言模型(Large Language Models, LLMs)無疑是技術領域最耀眼的明星之一。它們不僅能夠理解人類的自然語言,還能生成流暢的文本,甚至在對話、翻譯、創作等任務中表現出接近人類的智能…

MongoDB 高級索引

MongoDB 高級索引 摘要 在數據庫管理中,索引是提高查詢效率的關鍵因素。MongoDB,作為一款流行的NoSQL數據庫,其索引功能尤為強大。本文將深入探討MongoDB的高級索引特性,包括復合索引、部分索引、文本索引、地理空間索引等,旨在幫助數據庫管理員和開發者更好地利用Mongo…

STM32MP1xx的啟動流程

https://wiki.st.com/stm32mpu/wiki/Boot_chain_overview 根據提供的知識庫內容,以下是STM32 MPU啟動鏈的詳細解析: 1. 通用啟動流程 STM32 MPU啟動分為多階段,逐步初始化外設和內存,并建立信任鏈: 1.1 ROM代碼&…

Collab-Overcooked:專注于多智能體協作的語言模型基準測試平臺

2025-02-27,由北京郵電大學和理想汽車公司聯合創建。該平臺基于《Overcooked-AI》游戲環境,設計了更具挑戰性和實用性的交互任務,目的通過自然語言溝通促進多智能體協作。 一、研究背景 近年來,基于大型語言模型的智能體系統在復…

QT——文件IO

QFile 類 構造函數 QFile() 無參構造 僅僅構建一個QFile 對象,不設定文件名 QFile(文件名) 構建一個QFile對象的同時,設定文件名 但是注意,僅僅設定文件名,并不會打開該文件 設定文件名 QFile file file.setFileName…

HTML第三節

一.初識CSS 1.CSS定義 A.內部樣式表 B.外部樣式表 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&g…

xr-frame 3D Marker識別,揚州古牌坊 3D識別技術穩定調研

目錄 識別物體規范 3D Marker 識別目標文件 map 生成 生成任務狀態解析 服務耗時&#xff1a; 對傳入的視頻有如下要求&#xff1a; 對傳入的視頻建議&#xff1a; 識別物體規范 為提高Marker質量&#xff0c;保證算法識別效果&#xff0c;可參考Marker規范文檔 Marker規…

html+js 輪播圖

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>輪播圖示例</title><style>/* 基本樣式…

NAT 代理服務 內網穿透

&#x1f308; 個人主頁&#xff1a;Zfox_ &#x1f525; 系列專欄&#xff1a;Linux 目錄 一&#xff1a;&#x1f525; NAT 技術背景二&#xff1a;&#x1f525; NAT IP 轉換過程三&#xff1a;&#x1f525; NAPT四&#xff1a;&#x1f525; 代理服務器&#x1f98b; 正向…

[Web 安全] PHP 反序列化漏洞 —— PHP 魔術方法

關注這個專欄的其他相關筆記&#xff1a;[Web 安全] 反序列化漏洞 - 學習筆記-CSDN博客 PHP 魔術方法 - 簡介 - PHP 魔術方法 - 簡單教程&#xff0c;簡單編程PHP 中&#xff0c;以兩個下劃線 ( __ ) 開頭方法稱之為 「 魔術方法 」 這些 「 魔術方法 」 在 [PHP](/l/yufei/php…

20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡為ext4格式

20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡為ext4格式 2025/3/4 16:47 緣起&#xff1a;128GB的TF卡&#xff0c;只能格式化為NTFS/exFAT/ext4。 在飛凌的OK3588-C下&#xff0c;NTFS格式只讀。 exFAT需要改內核來支持。 現在只剩下ext4了。 linux R4默認不支持exFAT…

跨域問題解釋及前后端解決方案(SpringBoot)

一、問題引出 有時,控制臺出現如下問題。 二、為什么會有跨域 2.1瀏覽器同源策略 瀏覽器的同源策略 &#xff08; Same-origin policy &#xff09;是一種重要的安全機制&#xff0c;用于限制一個源&#xff08; origin &#xff09;的文檔或 腳本如何與另一個源的資源進行…

【NLP 30、文本匹配任務 —— 傳統機器學習算法】

目錄 一、文本匹配任務的定義 1.狹義解釋 2.廣義解釋 二、文本匹配的應用 1.問答對話 2.信息檢索 3.文本匹配任務應用 三、智能問答 1.智能問答的基本思路 依照基礎資源劃分&#xff1a; 依照答案產出方式劃分 依照NLP相關技術劃分 四、智能問答的價值 1.智能客服 2.Faq知識庫問…

開源表單、投票、測評平臺部署教程

填鴨表單聯合寶塔面板深度定制,自寶塔面板 9.2 版本開始,在寶塔面板-軟件商店中可以一鍵部署填鴨表單系統。 簡單操作即可擁有屬于自己的表單問卷系統,快速賦能業務。即使小白用戶也能輕松上手。 社區版體驗地址:https://demo.tduckapp.com/home 前端項目地址: tduck-fro…

Elasticsearch 限制索引大小與索引模板匹配沖突解決方案

文章目錄 背景介紹環境限制索引大小創建 ILM&#xff08;索引生命周期管理&#xff09;策略創建 ILM 策略 創建索引模板并關聯 ILM 策略使用索引模板應用 ILM 策略 解決索引模板匹配沖突? 解決方案&#x1f539; 方案 1&#xff1a;修改 index_patterns&#xff08;推薦&#…

[LeetCode]day33 150.逆波蘭式求表達值 + 239.滑動窗口最大值

逆波蘭式求表達值 題目鏈接 題目描述 給你一個字符串數組 tokens &#xff0c;表示一個根據 逆波蘭表示法 表示的算術表達式。 請你計算該表達式。返回一個表示表達式值的整數。 注意&#xff1a; 有效的算符為 ‘’、‘-’、‘*’ 和 ‘/’ 。 每個操作數&#xff08;運…

論文閱讀筆記:UniFace: Unified Cross-Entropy Loss for Deep Face Recognition

論文閱讀筆記&#xff1a;UniFace: Unified Cross-Entropy Loss for Deep Face Recognition 1 背景2 創新點3 方法3.1 回顧softmax損失3.2 統一交叉熵損失3.3 人臉驗證中的UCE損失3.4 進一步的優化3.4.1 邊際UCE損失3.4.2 平衡BCE損失 4 實驗4.1 消融實驗4.2 和SOTA方法對比 論…

Metal學習筆記七:片元函數

知道如何通過將頂點數據發送到 vertex 函數來渲染三角形、線條和點是一項非常巧妙的技能 — 尤其是因為您能夠使用簡單的單行片段函數為形狀著色。但是&#xff0c;片段著色器能夠執行更多操作。 ? 打開網站 https://shadertoy.com&#xff0c;在那里您會發現大量令人眼花繚亂…