C 語言基礎入門:基本數據類型與運算符詳解

一、基本數據類型

C 語言提供了豐富的基本數據類型,用于存儲不同類型的數據,主要包括整數類型、浮點類型和布爾類型。

1. 整數類型

整數類型用于存儲整數,根據是否帶符號以及占用存儲空間的不同,可進一步細分:

類型名占用存儲空間數值范圍
char1 字節-128 到 127 或者 0 到 255
unsigned char1 字節0 到 255
signed char1 字節-128 到 127
short至少 2 字節-32,768 到 32,767
unsigned short至少 2 字節0 到 65,535
int至少 2 字節通常與機器字長一致
unsigned int至少 2 字節0 到 4,294,967,295(32 位系統)
long至少 4 字節-2,147,483,648 到 2,147,483,647
unsigned long至少 4 字節0 到 4,294,967,295
long long至少 8 字節-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long long至少 8 字節0 到 18,446,744,073,709,551,615

2. 浮點類型

浮點類型用于存儲帶小數點的數值,有單精度和雙精度之分:

類型名占用存儲空間精度數值范圍
float4 字節約 6-7 位有效數字±1.2E-38 到 ±3.4E+38
double8 字節約 15-16 位有效數字±2.2E-308 到 ±1.8E+308
long double8 字節或更多至少和 double 一樣高取決于具體實現

3. 布爾類型

C 語言原本沒有專門的布爾類型,不過在 C99 標準中引入了_Bool類型,并且可以通過包含stdbool.h頭文件使用bool別名:

類型名占用存儲空間取值
_Bool1 字節0(假)或 1(真)
bool1 字節false 或 true

二、各種變量的格式占位符

在使用printfscanf等函數時,需要使用格式占位符來指定數據的輸出和輸入格式。

1. 常用的格式占位符

  • int:%d
  • double:%lf
  • float:%f
  • long long:%lld

2. 整數占位符

整數占位符用于處理不同類型的整數數據:

占位符對應數據類型說明
%dint以十進制形式輸出有符號整數
%iint與 % d 相同,也用于輸出十進制整數
%uunsigned int以十進制形式輸出無符號整數
%ounsigned int以八進制形式輸出無符號整數
%xunsigned int以十六進制形式輸出無符號整數(小寫字母)
%Xunsigned int以十六進制形式輸出無符號整數(大寫字母)
%ldlong以十進制形式輸出長整型
%luunsigned long以十進制形式輸出無符號長整型
%lldlong long以十進制形式輸出長長整型
%lluunsigned long long以十進制形式輸出無符號長長整型

3. 浮點占位符

浮點占位符用于處理浮點數數據:

占位符對應數據類型說明
%ffloat/double以十進制小數形式輸出(默認 6 位小數)
%efloat/double以科學計數法形式輸出(小寫 e)
%Efloat/double以科學計數法形式輸出(大寫 E)
%gfloat/double自動選擇 % f 或 % e 中更簡潔的形式輸出
%Gfloat/double自動選擇 % f 或 % E 中更簡潔的形式輸出

4. 字符與字符串占位符

字符與字符串占位符用于處理字符和字符串數據:

占位符對應數據類型說明
%cchar輸出單個字符
%schar*輸出字符串,直到遇到 \0 結束
%pvoid*輸出指針地址(以十六進制形式)

5. 其他占位符

其他占位符用于特殊需求:

占位符對應數據類型說明
%%輸出百分號 % 本身
%nint*將已輸出的字符數存儲到指定的整型指針中

6. 格式控制選項

在 % 和占位符之間,還可以使用一些修飾符來更精確地控制輸出格式:

  • 寬度控制:例如%5d表示輸出寬度為 5 的整數,不足部分用空格填充。
  • 精度控制:例如%.2f表示輸出保留兩位小數的浮點數。
  • 對齊方式:例如%-10s表示左對齊輸出寬度為 10 的字符串。
  • 符號控制:例如%+d表示輸出帶符號的整數,正數也會顯示 + 號。
  • 填充字符:例如%05d表示用 0 填充寬度不足的部分,如輸出 00042。

7. 注意事項

  • 在使用scanf讀取字符串時,%s會在遇到空格、制表符或換行符時停止讀取。若要讀取包含空格的字符串,可以使用%[^\n]
  • 占位符要和對應變量的類型相匹配,否則可能會導致未定義行為。
  • %n是一個比較特殊的占位符,使用時需要格外小心,因為它可能會引發安全漏洞。
  • 對于long long類型,在 Windows 系統的某些編譯器中可能需要使用%I64d

三、系統函數調用

在 C 語言中,可以使用system("")函數來調用系統命令,該函數需要包含頭文件stdlib.h

1. 常用系統指令

  • cls:清屏
  • pause:按任意鍵繼續
  • cmd:打開 cmd

2. 其他命令(win 系統命令不區分大小寫)

以下是一些常用的 Windows 系統命令:

  • ASSOC:顯示或修改文件擴展名關聯
  • ATTRIB:顯示或更改文件屬性
  • BREAK:設置或清除擴展式 CTRL+C 檢查
  • BCDEDIT:設置啟動數據庫中的屬性以控制啟動加載
  • CACLS:顯示或修改文件的訪問控制列表 (ACL)
  • CALL:從另一個批處理程序調用這一個
  • CD:顯示當前目錄的名稱或將其更改
  • CHCP:顯示或設置活動代碼頁數
  • CHDIR:顯示當前目錄的名稱或將其更改
  • CHKDSK:檢查磁盤并顯示狀態報告
  • CHKNTFS:顯示或修改啟動時間磁盤檢查
  • COLOR:設置默認控制臺前景和背景顏色
  • COMP:比較兩個或兩套文件的內容
  • COMPACT:顯示或更改 NTFS 分區上文件的壓縮
  • CONVERT:將 FAT 卷轉換成 NTFS,你不能轉換當前驅動器
  • COPY:將至少一個文件復制到另一個位置
  • DATE:顯示或設置日期,后面加/t表示顯示日期
  • DEL:刪除至少一個文件
  • DIR:顯示一個目錄中的文件和子目錄
  • DISKPART:顯示或配置磁盤分區屬性
  • DOSKEY:編輯命令行、撤回 Windows 命令并創建宏
  • DRIVERQUERY:顯示當前設備驅動程序狀態和屬性
  • ECHO:顯示消息,或將命令回顯打開或關閉
  • ENDLOCAL:結束批文件中環境更改的本地化
  • ERASE:刪除一個或多個文件
  • EXIT:退出 CMD.EXE 程序 (命令解釋程序)
  • FC:比較兩個文件或兩個文件集并顯示它們之間的不同
  • FIND:在一個或多個文件中搜索一個文本字符串
  • FINDSTR:在多個文件中搜索字符串
  • FOR:為一組文件中的每個文件運行一個指定的命令
  • FORMAT:格式化磁盤,以便用于 Windows
  • FSUTIL:顯示或配置文件系統屬性
  • FTYPE:顯示或修改在文件擴展名關聯中使用的文件類型
  • GOTO:將 Windows 命令解釋程序定向到批處理程序中某個帶標簽的行
  • GPRESULT:顯示計算機或用戶的組策略信息
  • GRAFTABL:使 Windows 在圖形模式下顯示擴展字符集
  • HELP:提供 Windows 命令的幫助信息
  • ICACLS:顯示、修改、備份或還原文件和目錄的 ACL
  • IF:在批處理程序中執行有條件的處理操作
  • LABEL:創建、更改或刪除磁盤的卷標
  • MD:創建一個目錄
  • MKDIR:創建一個目錄
  • MKLINK:創建符號鏈接和硬鏈接
  • MODE:配置系統設備
  • MORE:逐屏顯示輸出
  • MOVE:將一個或多個文件從一個目錄移動到另一個目錄
  • OPENFILES:顯示遠程用戶為了文件共享而打開的文件
  • PATH:為可執行文件顯示或設置搜索路徑
  • PAUSE:暫停批處理文件的處理并顯示消息
  • POPD:還原通過 PUSHD 保存的當前目錄的上一個值
  • PRINT:打印一個文本文件
  • PROMPT:更改 Windows 命令提示
  • PUSHD:保存當前目錄,然后對其進行更改
  • RD:刪除目錄
  • RECOVER:從損壞的或有缺陷的磁盤中恢復可讀信息
  • REM:記錄批處理文件或 CONFIG.SYS 中的注釋 (批注)
  • REN:重命名文件
  • RENAME:重命名文件
  • REPLACE:替換文件
  • RMDIR:刪除目錄
  • ROBOCOPY:復制文件和目錄樹的高級實用工具
  • SET:顯示、設置或刪除 Windows 環境變量
  • SETLOCAL:開始本地化批處理文件中的環境更改
  • SC:顯示或配置服務 (后臺進程)
  • SCHTASKS:安排在一臺計算機上運行命令和程序
  • SHIFT:調整批處理文件中可替換參數的位置
  • SHUTDOWN:允許通過本地或遠程方式正確關閉計算機
  • SORT:對輸入排序
  • START:啟動單獨的窗口以運行指定的程序或命令
  • SUBST:將路徑與驅動器號關聯
  • SYSTEMINFO:顯示計算機的特定屬性和配置
  • TASKLIST:顯示包括服務在內的所有當前運行的任務
  • TASKKILL:中止或停止正在運行的進程或應用程序
  • TIME:顯示或設置系統時間,后面加/t表示顯示時間
  • TITLE:設置 CMD.EXE 會話的窗口標題,如TITLE 你想改成啥
  • TREE:以圖形方式顯示驅動程序或路徑的目錄結構,如TREE D:
  • TYPE:顯示文本文件的內容,如TYPE D:\\文本.txt
  • VER:顯示 Windows 的版本
  • VERIFY:告訴 Windows 是否進行驗證,以確保文件正確寫入磁盤
  • VOL:顯示磁盤卷標和序列號
  • XCOPY:復制文件和目錄樹
  • WMIC:在交互式命令 shell 中顯示 WMI 信息

四、運算符優先級

C++ 運算符的優先級決定了表達式中運算符的計算順序,以下是 C 語言中運算符的優先級列表,按照從高到低的順序排列,同一行中的運算符具有相同的優先級:

優先級運算符結合性
優先級 1::(作用域解析)從左到右
優先級 2++、--(后綴)
()(函數調用)
[](數組下標)
.(成員訪問)
->(通過指針的成員訪問)
從左到右
優先級 3++、--(前綴)
+、-(一元)
!、~(邏輯非、按位取反)
(type)(強制類型轉換)
*(解引用)
&(取地址)
sizeof
new、delete
從右到左
優先級 4.、->(成員指針訪問)從左到右
優先級 5*、/、%(乘、除、取模)從左到右
優先級 6+、-(加、減)從左到右
優先級 7<<、>>(位左移、位右移)從左到右
優先級 8<、<=、>、>=(關系比較)從左到右
優先級 9==、!=(相等性比較)從左到右
優先級 10&(按位與)從左到右
優先級 11^(按位異或)從左到右
優先級 12`(按位或)從左到右
優先級 13&&(邏輯與)從左到右
優先級 14||(邏輯或)從左到右
優先級 15?:(三元條件)從右到左
優先級 16=、+=、-=、*=、/=、%=
<<=、>>=、&=、^=、`=
從右到左
優先級 17,(逗號)從左到右

注意事項

  1. 優先級高的運算符先計算,例如a + b * c中,乘法先計算,因為*的優先級高于+
  2. 結合性決定相同優先級運算符的計算順序,例如賦值運算符是右結合的,因此a = b = c等價于a = (b = c)
  3. 使用括號()可以強制改變計算順序,例如(a + b) * c中加法先計算。
  4. 邏輯運算符&&||具有短路特性,即當結果可以提前確定時,不會計算后續表達式。

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

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

相關文章

應用在核電行業的虛擬現實解決方案

核能領域正處于創新與責任的交匯點。盡管核反應堆提供了高效且可持續的能源&#xff0c;但由于放射性物質的危險性&#xff0c;其也帶來了獨特挑戰。虛擬現實&#xff08;VR&#xff09;技術正通過為遠程操作、應急響應和放射性物質處理提供先進解決方案&#xff0c;徹底革新這…

CTF Web的數組巧用

PHP數組繞過intval和preg_match的CTF技巧 原題目 <?php include("flag.php"); // 引入flag文件&#xff0c;flag變量在這里定義 show_source("index.php"); // 顯示index.php文件的源碼&#xff08;方便選手查看&#xff09;// 判斷是否通過GET方式傳入…

vue2+elementui使用compressorjs壓縮上傳的圖片

首先是npm install compressorjs 然后新建一個compressorjs.js的文件 import Compressor from "compressorjs";// 默認壓縮配置 const DEFAULT_COMPRESS_OPTIONS {quality: 0.6, // 默認壓縮質量 (0-1)maxWidth: 1920, // 最大寬度maxHeight: 1080, // 最大高度con…

GPIO詳解:不僅僅是輸入輸出那么簡單

GPIO詳解&#xff1a;不僅僅是輸入輸出那么簡單 “別小看一個小小的引腳&#xff0c;它可是 MCU 世界的社交之門。” &#x1f44b; 先打個招呼&#xff1a;什么是 GPIO&#xff1f; GPIO&#xff0c;全稱是 General Purpose Input/Output —— 通用輸入輸出口。 簡單說&…

深度學習5(深層神經網絡 + 參數和超參數)

深層神經網絡簡介 深層神經網絡是機器學習中一種重要的模型&#xff0c;它通過增加網絡的“深度”&#xff08;即隱藏層的數量&#xff09;來提升模型對復雜數據的表示和學習能力。同淺層類似&#xff0c;也分為三個部分&#xff1a; 輸入層&#xff1a;接收原始數據&#xff…

時間復雜度與空間復雜度分析

一、什么是復雜度&#xff1f; 1.1 為什么需要復雜度分析&#xff1f; 假設你寫了兩個程序來解決同一個問題&#xff0c;如何判斷哪個程序更好&#xff1f;我們不能只看運行時間&#xff0c;因為&#xff1a; 不同電腦性能不同同一電腦在不同時刻狀態也不同數據規模不同&#x…

上下文工程:從提示詞到自動化流程的AI應用新范式

上下文工程&#xff1a;從提示詞到自動化流程的 AI 應用新范式 一、背景與概述&#xff1a;從提示詞工程到上下文工程的演進 隨著大語言模型 (LLM) 技術的飛速發展&#xff0c;AI 應用開發正經歷從 “提示詞工程”(Prompt Engineering) 到 “上下文工程”(Context Engineerin…

HTML網頁應用打包Android App 完整實踐指南

技術準備與工具下載 必需工具清單 在開始之前&#xff0c;需要準備以下開發工具&#xff1a; Android Studio官網&#xff1a;https://developer.android.com/studio HBuilderX官網&#xff1a;https://www.dcloud.io/hbuilderx.html 離線SDK下載&#xff1a;https://nati…

簡單 Python 爬蟲程序設計

爬蟲是獲取網頁數據的常用工具&#xff0c;我們一起來設計一個基于 requests 和 BeautifulSoup 的簡單爬蟲&#xff0c;它可以獲取網頁內容并提取文本信息。 所需庫安裝 首先需要安裝兩個必要的庫&#xff1a; pip install requests beautifulsoup4 完整代碼 import reques…

AUTOSAR圖解==>AUTOSAR_AP_EXP_ARAComAPI

AUTOSAR ara::com API詳解 自適應平臺通信API技術詳解 目錄 1. 概述2. ara::com API架構 2.1 Proxy/Skeleton架構2.2 通信方式2.3 服務連接方式 3. 詳細API說明 3.1 Proxy類3.2 Skeleton類3.3 實例標識符3.4 通信組 4. ara::com API狀態管理 4.1 服務生命周期4.2 事件與方法狀…

Spring Boot + 本地部署大模型實現:優化與性能提升

在將大語言模型集成到 Spring Boot 應用中時&#xff0c;性能優化是一個關鍵環節。本地部署的大模型雖然提供了強大的功能&#xff0c;但也可能帶來一些性能挑戰&#xff0c;如響應時間較長、資源占用較高等問題。本文將介紹如何在 Spring Boot 應用中優化本地部署大模型的性能…

QML 鼠標只響應左鍵處理方法

【1】問題描述 默認情況下qml支持左鍵&#xff0c;如果需要支持右鍵&#xff0c;甚至是中鍵那需要設置 【2】設置方法 MouseArea{ id: mouse anchors.fill: parent property int cx: 0 pr…

北方算網亮相2025全球數字經濟大會|共繪數字友好城市建設

7月2日&#xff0c;以“建設數字友好城市”為主題的2025全球數字經濟大會隆重開幕&#xff0c;為構建技術與人、城市與生態和諧共進的全球數字經濟新生態提供交流合作平臺。自7月3日開始&#xff0c;北方算網將在大會集中亮相&#xff0c;先后在多個論壇中發表主題演講&#xf…

Android PNG/JPG圖ARGB_8888/RGB_565?解碼形成Bitmap在物理內存占用大小的簡單計算

Android PNG/JPG圖ARGB_8888/RGB_565?解碼形成Bitmap在物理內存占用大小的簡單計算 Android的Bitmap 是一個用于表示圖像數據的核心類&#xff0c;代表一張圖片在內存中的存儲&#xff0c;Bitmap存儲了圖像的像素信息數據。 Bitmap把圖像理解為像素點組成的二維矩陣&#xff…

力扣網編程55題:跳躍游戲之逆向思維

一. 簡介 前面一篇文章使用貪心算法解決 力扣網55題&#xff1a;跳躍游戲&#xff0c;文章如下&#xff1a; 力扣網編程55題&#xff1a;跳躍游戲之貪心算法-CSDN博客 二. 力扣網編程55題&#xff1a;跳躍游戲之逆向思維 給你一個非負整數數組 nums &#xff0c;你最初位于數…

蒼穹外賣--day12數據統計-Excel報表

1.工作臺1.1實現思路工作臺是系統運營的數據看板&#xff0c;并提供快捷操作入口&#xff0c;可以有效提高商家的工作效率。工作臺展示的數據&#xff1a;①今日數據②訂單管理③菜品總覽④套餐總覽⑤訂單信息名詞解釋&#xff1a;①營業額&#xff1a;已經完成訂單的總金額②有…

鴻蒙應用開發:從網絡獲取數據

一、網絡狀態概述上述任一指標的變化均可視為網絡狀態的改變 二、獲取網絡信息 創建網絡對象 //創建網絡對象 //?表示可傳可不傳 connection.createNetConnection(netSpecifier?:NetSpecifier,timeout?:number):NetConnection;獲取默認激活網絡及其能力 //獲取默認激活網絡 …

探索開源虛擬 Excel 函數模塊:Python 中的 Excel 功能利器

在數據處理和分析的領域中&#xff0c;Excel 一直是一款備受青睞的工具&#xff0c;它提供了豐富多樣的函數&#xff0c;幫助用戶高效地完成各種數據操作。而現在&#xff0c;我&#xff08;董翔&#xff09;開發一個基于 Python 的虛擬 Excel 函數模塊&#xff0c;它將 Excel …

開源 vGPU 方案 HAMi: corememory 隔離測試

本文主要對開源的 vGPU 方案 HAMi 的 GPU Core&Memory 隔離功能進行測試。 省流&#xff1a; HAMi vGPU 方案提供的 Core&Memory 隔離基本符合預期&#xff1a; Core 隔離&#xff1a;Pod 能使用的算力會圍繞設定值波動&#xff0c;但是一段時間內平均下來和申請的 g…

openstack安裝并初始化

openstack安裝并初始化openStack 概述OpenStack 起源什么是Openstackopenstack優勢使用本地倉庫離線安裝系統基本環境設置為系統設置本地倉庫創建openstack-train的倉庫更新系統安裝部署工具一鍵安裝設置橋接網絡通過 Dashboard 體驗 OpenStack 功能創建云主機創建網絡(1)用adm…