0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

技術干貨驛站 ▏深入理解C語言:掌握常量,讓你的代碼更加穩(wěn)固高效!

北京合眾恒躍科技有限公司 ? 2024-08-29 13:59 ? 次閱讀

C語言的世界中,常量是一種不可忽視的元素。無論你是在編寫簡單的代碼,還是構建復雜的系統(tǒng),常量都能為你的程序帶來更高的穩(wěn)定性和可靠性。在這篇文章中,我們將深入探討C語言中的常量,從整數(shù)常量到字符串常量,逐一解析它們的使用方法和特點,幫助你在編程中更加得心應手。

01

常量

常量是固定值,在程序執(zhí)行期間不會改變。這些固定的值,又叫做字面量。

常量可以是任何的基本數(shù)據(jù)類型,比如整數(shù)常量、浮點常量、字符常量,或字符串常量,也有枚舉常量。

常量就像是常規(guī)的變量,只不過常量的值在定義后不能進行修改,常量可以直接在代碼中使用,也可以通過定義常量來使用。

02

整數(shù)常量

整數(shù)常量可以是十進制、八進制或十六進制。前綴用來指定基數(shù),0x 或 0X 表示十六進制,0 表示八進制,不帶前綴則默認表示十進制。

整數(shù)常量也可以帶一個后綴,后綴可以是U或者L,不區(qū)分大小寫,也無順序要求,U 表示無符號整數(shù)(unsigned),L 表示長整數(shù)(long)。

以下是幾個示例:

cef1252a-65cb-11ef-9e9e-92fbcf53809c.pngcf0037b8-65cb-11ef-9e9e-92fbcf53809c.png

03

浮點常量

浮點常量由整數(shù)部分、小數(shù)點、小數(shù)部分和指數(shù)部分組成。可以使用小數(shù)形式或者指數(shù)形式來表示浮點常量。

當使用小數(shù)形式表示時,必須同時包含整數(shù)部分和小數(shù)部分。當使用指數(shù)形式表示時, 必須同時包含小數(shù)點和指數(shù)。帶符號的指數(shù)是用 e 或 E 引入的。

以下是幾個示例:

cf1e2f0c-65cb-11ef-9e9e-92fbcf53809c.png

04

字符常量

字符常量是括在單引號中,例如,'x' 可以存儲在 char 類型的簡單變量中。

字符常量可以是一個普通的字符(例如 'x')、一個轉義序列(例如 '\t'),或一個通用的字符(例如 '\u02C0')。

在 C 中,有一些特定的字符,當它們前面有反斜杠時,它們就具有特殊的含義,被用來表示如換行符(\n)或制表符(\t)等。大家可以自行搜索 “轉義字符” 來查看,這里舉例常見的換行符\n:

cf471db8-65cb-11ef-9e9e-92fbcf53809c.png

這是一個簡單的C語言程序,編譯運行后結果如下:

cf50bef4-65cb-11ef-9e9e-92fbcf53809c.png

可以看到,這里的hello world 和命令行在同一行內,不方便查看。我們添加兩個換行符進去:

cf63f0aa-65cb-11ef-9e9e-92fbcf53809c.png

\n 表示在這一行的末尾位置換行,我們編譯運行這個程序來看一下效果:

cf73d218-65cb-11ef-9e9e-92fbcf53809c.png

可以看到,由于添加了兩個換行符,每一個詞都做了換行處理,方便查看。

05

字符串常量

字符串常量是括在雙引號 " " 中的。一個字符串包含類似于字符常量的字符:普通的字符、轉義序列和通用的字符。

可以使用空格做分隔符,把一個很長的字符串常量進行分行。

06

定義常量

在 C 中,有兩種簡單的定義常量的方式:

使用 #define 預處理器:#define 可以在程序中定義一個常量,它在編譯時會被替換為其對應的值。

使用 const 關鍵字:const 關鍵字用于聲明一個只讀變量,即該變量的值不能在程序運行時修改。

下面我們通過實例來看一下兩種方式的不同。

01 / #define預處理器

cfaaa6f8-65cb-11ef-9e9e-92fbcf53809c.png

編譯運行結果如下:

cfba137c-65cb-11ef-9e9e-92fbcf53809c.png

02/const關鍵字

cfc3b738-65cb-11ef-9e9e-92fbcf53809c.png

編譯運行結果如下:

cfd827c2-65cb-11ef-9e9e-92fbcf53809c.png

03 /#define 與 const 的區(qū)別

#define 是預處理器在預處理階段完成的,而 const 是在編譯器開始編譯程序階段完成的。

#define 是宏定義,其特點是簡單的原位替換。它定義的常量值沒有類型限定,也不進行類型檢查,只是在出現(xiàn)宏名稱的地方直接展開;const 是關鍵字,本質上定義了一個只讀變量,不可更改。編譯時會檢查常量值的類型是否匹配。

#define 適用于簡單的文本替換,例如常量表達式、宏定義和條件編譯等場景;使用?const?更適合定義具有類型和作用域的常量,它具有類型安全性,可以進行類型檢查,并且在內存中分配存儲空間。

在 C 語言中,推薦使用 const 來定義常量,以提供更好的類型檢查和代碼可讀性。

04 /#define 與 const 的優(yōu)點

const的優(yōu)點

const常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產(chǎn)生意料不到的錯誤。


有些集成化的調試工具可以對const常量進行調試,但是不能對宏常量進行調試。


const可節(jié)省空間,避免不必要的內存分配,提高效率。

#define的優(yōu)點

宏可以定義一些函數(shù),const不可以;宏可以使代更碼簡潔;使用宏可以方便代碼維護;宏還可以定義帶參數(shù)的宏,做到一定程度的泛型(利用#或者##操作符)。

總結

通過對C語言中常量的深入了解和運用,你可以顯著提升代碼的穩(wěn)定性和可讀性。常量在確保程序行為一致性的同時,也為代碼的優(yōu)化提供了有力支持。合理使用不同類型的常量,以及#define和const的結合,將為你的編程工作奠定堅實的基礎。在日后的開發(fā)中,充分利用這些工具,將使你的代碼更加高效可靠。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7622

    瀏覽量

    139242
  • 程序
    +關注

    關注

    117

    文章

    3815

    瀏覽量

    81913
  • 代碼
    +關注

    關注

    30

    文章

    4866

    瀏覽量

    69817
收藏 人收藏

    評論

    相關推薦

    技術干貨驛站深入理解C語言:基本數(shù)據(jù)類型和變量

    C語言中,數(shù)據(jù)類型和變量是編程的基礎,也是理解更復雜概念的關鍵。數(shù)據(jù)類型決定了變量的內存分配、存儲范圍和操作方式,而變量則是存儲數(shù)據(jù)的容器。本篇文章將從基本數(shù)據(jù)類型和變量兩個方面,帶你深入
    的頭像 發(fā)表于 07-26 17:53 ?2420次閱讀
    <b class='flag-5'>技術</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:基本數(shù)據(jù)類型和變量

    技術干貨驛站深入理解C語言掌握程序結構知識

    在計算機編程的世界中,C語言被廣泛認可為一門強大而高效的編程語言,其簡潔的語法和直接的指令使得它成為了許多程序員的首選。了解C
    的頭像 發(fā)表于 07-27 08:45 ?1655次閱讀
    <b class='flag-5'>技術</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>掌握</b>程序結構知識

    深入理解和實現(xiàn)RTOS_連載

    了解和掌握RTOS的多任務機制。深入理解和實現(xiàn)RTOS_連載4_多任務機制實現(xiàn)本篇將詳細介紹TROCHILI RTOS 多任務機制的實現(xiàn),內容很詳細、很豐富,涉及了大量RTOS底層實現(xiàn)。建議讀者參考實際代碼
    發(fā)表于 05-29 11:20

    深入理解和實現(xiàn)RTOS_連載

    連載的幾篇則會通過流程圖、代碼演示的方式仔細講解飛鳥RTOS的多任務機制的實現(xiàn)和應用。按照原理、設計、實現(xiàn)、應用的思路,帶領讀者逐步深入了解和掌握RTOS的多任務機制。深入理解和實現(xiàn)R
    發(fā)表于 05-30 01:02

    深入理解C語言比較有用的幾個資料

    這里有三個對深入理解C語言的資料,覺得不錯,分享一下
    發(fā)表于 08-07 21:37

    51單片機C語言講義(譚浩強)以及深入理解C指針

    本帖最后由 發(fā)燒友之麒麟 于 2014-10-6 09:19 編輯 C語言講義(譚浩強)及深入理解C指針,自己在用的資料,覺得寫得挺好的就拿出來分享,需要的請回[attach]2
    發(fā)表于 10-02 17:05

    如何更加深入理解MOSFET開關損耗?

    如何更加深入理解MOSFET開關損耗?Coss產(chǎn)生開關損耗與對開關過程有什么影響?
    發(fā)表于 04-07 06:01

    對棧的深入理解

    為什么要深入理解棧?做C語言開發(fā)如果棧設置不合理或者使用不對,棧就會溢出,溢出就會遇到無法預測亂飛現(xiàn)象。所以對棧的深入理解是非常重要的。注:動畫如果看不清楚可以電腦看更清晰啥是棧先來看
    發(fā)表于 02-15 07:01

    為什么要深入理解

    [導讀] 從這篇文章開始,將會不定期更新關于嵌入式C語言編程相關的個人認為比較重要的知識點,或者踩過的坑。為什么要深入理解棧?做C語言開發(fā)如
    發(fā)表于 02-15 06:09

    深入理解C指針(C/C++程序員進階必備,透徹理解指針與內存管理)pdf

    深入理解C指針
    發(fā)表于 03-21 09:42 ?119次下載

    如何更加深入理解I2C總線、協(xié)議及應用

    更加深入理解I2C總線、協(xié)議及應用
    的頭像 發(fā)表于 03-20 09:29 ?3466次閱讀
    如何<b class='flag-5'>更加深入理解</b>I2<b class='flag-5'>C</b>總線、協(xié)議及應用

    技術干貨驛站深入理解C語言:編程高手必備,全方位解析運算符的核心技能!

    過程中發(fā)揮著重要作用,還對程序的性能和穩(wěn)定性產(chǎn)生直接影響。繼上一期對C語言常量深入分析后,本文將進一步探討C
    的頭像 發(fā)表于 09-18 15:56 ?539次閱讀
    <b class='flag-5'>技術</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:編程高手必備,全方位解析運算符的核心技能!

    技術干貨驛站深入理解C語言掌握C語言條件判斷,從if到switch的應用

    語句和條件運算符。這些結構不僅增強了代碼的靈活性,還提高了程序的可讀性和可維護性。本文將深入探討C語言中的主要條件判斷語句,包括它們的語法、使用方法及實際應用,通過
    的頭像 發(fā)表于 11-09 01:10 ?616次閱讀
    <b class='flag-5'>技術</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>掌握</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>條件判斷,從if到switch的應用

    深入理解C語言:循環(huán)語句的應用與優(yōu)化技巧

    能讓代碼更加簡潔明了,還能顯著提升程序執(zhí)行效率。本文將詳細介紹C語言中的三種常見循環(huán)結構——while循環(huán)、for循環(huán)和do...whi
    的頭像 發(fā)表于 12-07 01:11 ?377次閱讀
    <b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:循環(huán)語句的應用與優(yōu)化技巧

    技術干貨驛站深入理解C語言:嵌套循環(huán)與循環(huán)控制的底層原理

    多重循環(huán),還是控制循環(huán)的執(zhí)行流程,掌握這些知識都將為的編程之路打下堅實的基礎。嵌套循環(huán)在C語言中,循環(huán)語句可以嵌套使用,即在一個循環(huán)中再使用另一個循環(huán)。這種嵌套結
    的頭像 發(fā)表于 02-21 18:26 ?232次閱讀
    <b class='flag-5'>技術</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b>  ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:嵌套循環(huán)與循環(huán)控制的底層原理

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品