C語言32個關鍵字

文章目錄

  • 數據類型
    • 1、數據類型(12個)
  • 控制語句
    • 2、控制語句關鍵字(12個)
  • 存儲類型
    • 3、存儲類型關鍵字(4個)
  • 其他關鍵字
    • 4、其他關鍵字(4個)?


一共32個關鍵字分為

數據類型

1、數據類型(12個)

關鍵字說明示例
?**char**?聲明字符類型(1字節)char grade = 'A';
?**int**?聲明整型(通常4字節)int age = 25;
?**float**?單精度浮點型(約6-7位小數)float pi = 3.14f;
?**double**?雙精度浮點型(約15位小數)double precise = 3.1415926535;
?**short**?短整型(通常2字節)short temp = -10;
?**long**?長整型(通常4或8字節)long population = 1000000000L;
?**signed**?有符號類型(默認)signed int value = -42;
?**unsigned**?無符號類型(僅非負數)unsigned int counter = 100;
?**void**?空類型(無返回值/無參數)void printHello() { printf("Hello"); }
?**struct**?結構體(封裝多個類型)struct Student { int id; char name[20]; };
?**union**?聯合體(共享內存空間)union Data { int i; float f; } data;
?**enum**?枚舉(定義命名常量)enum Color { RED, GREEN, BLUE };

一般常用的有:

先來四個比較特殊的:

  • 枚舉 enum
  • 結構體 struct
  • 聯合體 union
  • 空類型 void

有符號無符號兩個:

  • 有符號 signed
  • 無符號 unsigned

剩下6個具體的數據類型:

  • 字符型 char(一個字節,也就是u8,uint8_8)
  • 整數型 int(一般是4個字節,也就是u32,uint32_32)
  • 短整型 short(一般是兩個字節也就是u16,uint16_t)
  • 長整型 long(一般是4或者8字節)
  • 單浮點型 float(一般是6到7為小數)
  • 雙浮點型 double(一般是15位小數)
    以上會有一些組合
    例如:
    unsigned int
    unsigned short
    unsigned long

控制語句

2、控制語句關鍵字(12個)

關鍵字說明示例
?**if**?條件判斷if (score >= 60) { printf("Pass"); }
?**else**?否定分支else { printf("Fail"); }
?**switch**?多分支選擇switch (grade) { case 'A': ... }
?**case**?分支匹配項case 1: printf("Option 1"); break;
?**default**?默認分支default: printf("Invalid");
?**for**?循環(明確次數)for (int i = 0; i < 5; i++) { ... }
?**while**?當型循環while (x > 0) { x--; }
?**do**?直到型循環(先執行)do { x++; } while (x < 10);
?**break**?跳出循環/分支if (error) break;
?**continue**?跳過本次循環if (i == 3) continue;
?**goto**?無條件跳轉(慎用)goto cleanup; ... cleanup: ...
?**return**?函數返回值return a + b;

主要是
break:

#include <stdio.h>
int main() {for (int i = 0; i < 10; i++) {if (i == 5) {break; // i=5 時退出循環}printf("%d ", i);}return 0;
}

輸出?:0 1 2 3 4
?說明?:循環在 i=5 時被終止,后續迭代不再執行

for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (j == 1) break; // 僅退出內層循環printf("i=%d, j=%d\n", i, j);}
}

僅跳出最近一層結構?

  • 在嵌套循環中,break 只終止最內層循環:

輸出?:
i=0, j=0
i=1, j=0
i=2, j=0

continue 的區別?

  • break:完全退出循環。
  • continue:跳過當前迭代,進入下一次循環

continue:

#include <stdio.h>
int main() {for (int i = 1; i <= 10; i++) {if (i % 2 == 0) {continue; // 跳過偶數}printf("%d ", i);}return 0;
}

輸出?:1 3 5 7 9
?說明?:i 為偶數時,continue 跳過 printf,直接進入下一次循環

#include <stdio.h>
int main() {int i = -5, sum = 0;while (i <= 5) {if (i < 0) {i++;continue; // 跳過負數}sum += i;i++;}printf("非負數和:%d", sum);return 0;
}

輸出?:非負數和:15
?說明?:負數時跳過累加,但需手動更新循環變量 i++,避免死循環

for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (j == 1) continue; // 僅跳過內層當前迭代printf("i=%d, j=%d\n", i, j);}
}

continue 僅影響最內層循環。嵌套循環中不會跳過外層:
輸出?:
i=0, j=0
i=0, j=2
i=1, j=0
…(其他同理)

break 的區別?

  • continue:僅跳過當前迭代,循環繼續。
  • break:?終止整個循環,直接退出

continue 的核心價值是優化循環控制,適合以下場景:

  • ?過濾數據?:跳過無效值(如負數、零值)。
  • ?條件處理?:特定條件下忽略部分計算(如跳過偶數的打印)。
  • ?簡化邏輯?:替代多層 if 嵌套,提升代碼可讀性。

存儲類型

3、存儲類型關鍵字(4個)

關鍵字說明示例
?**auto**?自動變量(默認局部)auto int x = 10;(通常省略)
?**static**?靜態變量(生命周期全局)static int count = 0;(跨函數調用保留值)
?**register**?寄存器變量(建議快速訪問)register int i;(編譯器可能忽略)
?**extern**?外部聲明(跨文件引用)extern int globalVar;(定義在其他文件)

其他關鍵字

4、其他關鍵字(4個)?

關鍵字說明示例
?**const**?常量(值不可修改)const int MAX = 100;
?**sizeof**?計算類型/變量大小size_t size = sizeof(int); // 輸出4
?**typedef**?類型別名typedef int Integer; Integer num = 5;
?**volatile**?易變變量(防編譯器優化)volatile int flag = 0;(多線程/中斷中常用)

文章源碼獲取方式:
如果您對本文的源碼感興趣,歡迎在評論區留下您的郵箱地址。我會在空閑時間整理相關代碼,并通過郵件發送給您。由于個人時間有限,發送可能會有一定延遲,請您耐心等待。同時,建議您在評論時注明具體的需求或問題,以便我更好地為您提供針對性的幫助。

【版權聲明】
本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議。這意味著您可以自由地共享(復制、分發)和改編(修改、轉換)本文內容,但必須遵守以下條件:
署名:您必須注明原作者(即本文博主)的姓名,并提供指向原文的鏈接。
相同方式共享:如果您基于本文創作了新的內容,必須使用相同的 CC 4.0 BY-SA 協議進行發布。

感謝您的理解與支持!如果您有任何疑問或需要進一步協助,請隨時在評論區留言。

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

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

相關文章

粒子濾波|粒子濾波的相關算法理論介紹

在自動控制、導航、目標跟蹤等眾多領域&#xff0c;系統狀態估計是獲取真實狀態的關鍵環節。由于觀測信號常受噪聲干擾&#xff0c;濾波技術成為提取可靠信息的核心手段。本文將圍繞目標跟蹤技術中的濾波算法理論展開&#xff0c;重點解析粒子濾波框架的原理與應用。一、動態系…

Jenkins+Gitee+Docker容器化部署

寫在前文 本文主要是通過Jenkins的maven項目版本GiteeDocker-maven插件來進行部署的&#xff0c;本文沒有使用dockerfile/docker-compose。 本文默認已經安裝了Docker 1、安裝Jenkins Step1、創建文件夾當作映射jenkins的home文件夾 mkdir /app/jenkins Step2、賦權&#xff…

[Meetily后端框架] 多模型-Pydantic AI 代理-統一抽象 | SQLite管理

第5章&#xff1a;人工智能模型交互&#xff08;Pydantic-AI 代理&#xff09; 歡迎回來&#xff01; 在上一章第四章&#xff1a;文字記錄處理邏輯中&#xff0c;我們學習了TranscriptProcessor如何將冗長的會議記錄分解為稱為"塊"的較小片段&#xff0c;因為人工…

利用DeepSeek實現rust調用duckdb動態鏈接庫的duckdb CLI

提示詞&#xff1a;請用rust調用duckdb-rs實現一個duckdb CLI,支持語法突出顯示和計時&#xff0c;還支持命令行管道輸入輸出 Cargo.toml [package] name "duckdb-cli" version "0.1.0" edition "2024"[dependencies] duckdb "1.3.1&qu…

C++,從匯編角度看《虛擬繼承的邪惡》

刷到一篇文章&#xff1a; 作者&#xff1a; 原文&#xff1a;虛擬繼承的邪惡 討論到這樣的一個程序&#xff0c;最終輸出什么&#xff1f;&#xff1f;&#xff1f; 代碼有簡化命名 using namespace std;class A { public:A(int a 0) : v(a) {};int v; };template <type…

多 Agent 強化學習實踐指南(一):CTDE PPO 在合作捕食者-獵物游戲中的應用詳解

我們來詳細講解如何在合作捕食者-獵物游戲中結合 PPO (Proximal Policy Optimization) 算法。我們將聚焦于 CTDE&#xff08;Centralized Training, Decentralized Execution&#xff0c;集中訓練、分散執行&#xff09; 模式&#xff0c;因為這是處理合作多 Agent 任務的常用且…

Web應用文件上傳安全設計指南

引言 在當今的Web應用中&#xff0c;文件上傳功能已成為基礎且必要的服務能力&#xff0c;但不當的設計可能帶來目錄遍歷、代碼注入、服務端資源耗盡等安全風險。本文從威脅模型、安全設計原則、技術實現三個維度&#xff0c;系統闡述安全文件上傳架構的設計要點。 一、威脅模型…

用 React Three Fiber 實現 3D 城市模型的擴散光圈特效

本文介紹了如何使用 React Three Fiber&#xff08;R3F&#xff09;和 Three.js 實現一個從中心向外擴散的光圈特效&#xff08;DiffuseAperture 組件&#xff09;&#xff0c;并將其集成到城市 3D 模型&#xff08;CityModel 組件&#xff09;中。該特效通過動態調整圓柱幾何體…

【牛客刷題】COUNT數字計數

文章目錄 一、題目介紹二、題解思路三、算法實現四、復雜度分析五 、關鍵步驟解析5.1 數字分解5.2 三種情況處理5.2.1 情況1: d < c u r d < cur d<cur(完整周期)5.2.2 情況2: d = c u r d = cur d=cur(混合周期)5.2.3 情況3: d > c u r d > cur d>cu…

AGV穿梭不“迷路”CCLinkIE轉Modbus TCP的銜接技巧

在AGV控制系統集成中&#xff0c;工程師常面臨一個現實難題&#xff1a;如何讓CCLinkIE總線與Modbus TCP設備實現高效通信&#xff1f;這種跨協議的連接需求&#xff0c;往往需要耗費大量時間調試。本文將通過實際案例解析&#xff0c;為制造行業工程師提供可復用的解決方案。【…

【代碼隨想錄】刷題筆記——哈希表篇

目錄 242. 有效的字母異位詞 349. 兩個數組的交集 202. 快樂數 1. 兩數之和 454. 四數相加 II 383. 贖金信 15. 三數之和 18. 四數之和 242. 有效的字母異位詞 思路 代碼 class Solution {public boolean isAnagram(String s, String t) {if (s.length() ! t.length()…

Python爬蟲實戰:研究messytables庫相關技術

1. 引言 在當今數字化時代,互聯網上存在著大量有價值的數據。然而,這些數據通常以不規則的格式存在,尤其是表格數據,可能包含復雜的表頭、合并單元格、不規則布局等問題。傳統的數據處理工具往往難以應對這些挑戰。 網絡爬蟲技術可以幫助我們從網頁上自動提取數據,而 mes…

Vue3的組件通信方式

通信方式適用層級數據流向復雜度Props/Emits父子組件單向/雙向★☆☆v-model父子組件雙向★☆☆Provide/Inject跨層級組件自上而下★★☆事件總線任意組件任意方向★★★Pinia/Vuex全局狀態任意方向★★☆Refs模板引用父子組件父→子★☆☆作用域插槽父子組件子→父★★☆Web W…

創客匠人:大健康創始人IP如何用“社會責任”構建品牌護城河

一、商業與責任的失衡困局部分大健康IP將利潤置于首位&#xff0c;甚至犧牲用戶利益&#xff0c;導致品牌形象脆弱。某保健品公司因夸大宣傳被曝光后&#xff0c;盡管銷量曾達千萬&#xff0c;卻因缺乏社會認同&#xff0c;一夜之間崩塌&#xff0c;證明沒有社會責任支撐的商業…

AI:機器人未來的形態是什么?

機器人未來的形態將受到技術進步、應用場景需求和社會接受度的綜合影響&#xff0c;以下是對未來機器人形態的預測&#xff0c;涵蓋技術趨勢、設計方向和應用場景&#xff1a; 1. 形態多樣化與通用化 人形機器人&#xff08;Humanoid Robots&#xff09;&#xff1a; 趨勢&…

創建 UIKit 項目教程

一、打開 XCode&#xff0c;選擇 iOS 下的 App&#xff0c;然后點 Next二、Interface 選擇 Storyboard&#xff0c;然后點 Next三、刪掉 Main.storyboard四、刪掉 SceneDelegate.swift五、AppDelegate.swift 只保留第一個函數六、在 AppDelegate.swift 文件里的 application 函…

防爬蟲君子協定 Robots.txt 文件

1.什么是robots.txt ? robots.txt是一個位于網站根目錄的文本文件,用于指導搜索引擎爬蟲如何訪問和抓取網站內容。它遵循特定的語法規則,是網站與爬蟲通信的重要工具。當搜索引擎訪問一個網站時,它首先會檢查該網站的根域下是否有一個叫做robots.txt的純文本文件。Robots.…

淺談 Python 中的 yield——生成器對象與函數調用的區別

我們來看這么一個例子&#xff1a; def greeter():name yield "你是誰&#xff1f;"yield f"你好&#xff0c;{name}"g greeter() print(next(g)) # → "你是誰&#xff1f;" print(g.send("張三")) # → "你好&#xf…

云端docker小知識

1、docker的三個關鍵概念image、container、dockerfile2、docker的container3、dockerfile4、docker制作image5、linux&#xff08;ubuntu&#xff09;安裝docker&#xff08;步驟1和4&#xff09;6、docker基本命令docker images 查看全部鏡像docker rmi -f 1e5f3c5b981a 刪除…

【Elasticsearch】昂貴算法與廉價算法

在 Elasticsearch 里&#xff0c;“昂貴”并不單指“CPU 時間”&#xff0c;而是綜合了 **CPU、內存、磁盤 I/O、網絡傳輸** 以及 **實現復雜度** 的代價。下面把常見“昂貴算法”拆開說&#xff1a;1. **高計算密度的文本算法** ? **match_phrase slop**&#xff08;帶跨距…