一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

合眾恒躍 ? 2024-08-29 13:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

01

常量

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

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

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

02

整數(shù)常量

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

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

以下是幾個(gè)示例:

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

03

浮點(diǎn)常量

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

當(dāng)使用小數(shù)形式表示時(shí),必須同時(shí)包含整數(shù)部分和小數(shù)部分。當(dāng)使用指數(shù)形式表示時(shí), 必須同時(shí)包含小數(shù)點(diǎn)和指數(shù)。帶符號(hào)的指數(shù)是用 e 或 E 引入的。

以下是幾個(gè)示例:

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

04

字符常量

字符常量是括在單引號(hào)中,例如,'x' 可以存儲(chǔ)在 char 類型的簡(jiǎn)單變量中。

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

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

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

這是一個(gè)簡(jiǎn)單的C語(yǔ)言程序,編譯運(yùn)行后結(jié)果如下:

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

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

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

\n 表示在這一行的末尾位置換行,我們編譯運(yùn)行這個(gè)程序來(lái)看一下效果:

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

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

05

字符串常量

字符串常量是括在雙引號(hào) " " 中的。一個(gè)字符串包含類似于字符常量的字符:普通的字符、轉(zhuǎn)義序列和通用的字符。

可以使用空格做分隔符,把一個(gè)很長(zhǎng)的字符串常量進(jìn)行分行。

06

定義常量

在 C 中,有兩種簡(jiǎn)單的定義常量的方式:

使用 #define 預(yù)處理器:#define 可以在程序中定義一個(gè)常量,它在編譯時(shí)會(huì)被替換為其對(duì)應(yīng)的值。

使用 const 關(guān)鍵字:const 關(guān)鍵字用于聲明一個(gè)只讀變量,即該變量的值不能在程序運(yùn)行時(shí)修改。

下面我們通過(guò)實(shí)例來(lái)看一下兩種方式的不同。

01 / #define預(yù)處理器

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

編譯運(yùn)行結(jié)果如下:

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

02/const關(guān)鍵字

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

編譯運(yùn)行結(jié)果如下:

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

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

#define 是預(yù)處理器在預(yù)處理階段完成的,而 const 是在編譯器開(kāi)始編譯程序階段完成的。

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

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

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

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

const的優(yōu)點(diǎn)

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


有些集成化的調(diào)試工具可以對(duì)const常量進(jìn)行調(diào)試,但是不能對(duì)宏常量進(jìn)行調(diào)試。


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

#define的優(yōu)點(diǎn)

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

總結(jié)

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

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

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141788
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    83000
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70757
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    C語(yǔ)言中,數(shù)據(jù)類型和變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲(chǔ)范圍和操作方式,而變量則是存儲(chǔ)數(shù)據(jù)的容器。本篇文章將從基本數(shù)據(jù)類型和變量?jī)蓚€(gè)方面,帶你深入
    的頭像 發(fā)表于 07-26 17:53 ?2752次閱讀
    <b class='flag-5'>技術(shù)</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'>語(yǔ)言</b>:基本數(shù)據(jù)類型和變量

    技術(shù)干貨驛站深入理解C語(yǔ)言掌握程序結(jié)構(gòu)知識(shí)

    在計(jì)算機(jī)編程的世界中,C語(yǔ)言被廣泛認(rèn)可為一門強(qiáng)大而高效的編程語(yǔ)言,其簡(jiǎn)潔的語(yǔ)法和直接的指令使得它成為了許多程序員的首選。了解C
    的頭像 發(fā)表于 07-27 08:45 ?1861次閱讀
    <b class='flag-5'>技術(shù)</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'>語(yǔ)言</b>:<b class='flag-5'>掌握</b>程序結(jié)構(gòu)知識(shí)

    深入理解C語(yǔ)言C語(yǔ)言循環(huán)控制

    C語(yǔ)言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進(jìn)入無(wú)限循環(huán),C
    的頭像 發(fā)表于 04-29 18:49 ?1154次閱讀
    <b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>循環(huán)控制

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

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

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

    連載的幾篇?jiǎng)t會(huì)通過(guò)流程圖、代碼演示的方式仔細(xì)講解飛鳥RTOS的多任務(wù)機(jī)制的實(shí)現(xiàn)和應(yīng)用。按照原理、設(shè)計(jì)、實(shí)現(xiàn)、應(yīng)用的思路,帶領(lǐng)讀者逐步深入了解和掌握RTOS的多任務(wù)機(jī)制。深入理解和實(shí)現(xiàn)R
    發(fā)表于 05-30 01:02

    深入理解C語(yǔ)言比較有用的幾個(gè)資料

    這里有三個(gè)對(duì)深入理解C語(yǔ)言的資料,覺(jué)得不錯(cuò),分享一下
    發(fā)表于 08-07 21:37

    51單片機(jī)C語(yǔ)言講義(譚浩強(qiáng))以及深入理解C指針

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

    如何更加深入理解MOSFET開(kāi)關(guān)損耗?

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

    對(duì)棧的深入理解

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

    為什么要深入理解

    [導(dǎo)讀] 從這篇文章開(kāi)始,將會(huì)不定期更新關(guān)于嵌入式C語(yǔ)言編程相關(guān)的個(gè)人認(rèn)為比較重要的知識(shí)點(diǎn),或者踩過(guò)的坑。為什么要深入理解棧?做C語(yǔ)言開(kāi)發(fā)如
    發(fā)表于 02-15 06:09

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

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

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

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

    技術(shù)干貨驛站深入理解C語(yǔ)言掌握C語(yǔ)言條件判斷,從if到switch的應(yīng)用

    語(yǔ)句和條件運(yùn)算符。這些結(jié)構(gòu)不僅增強(qiáng)了代碼的靈活性,還提高了程序的可讀性和可維護(hù)性。本文將深入探討C語(yǔ)言中的主要條件判斷語(yǔ)句,包括它們的語(yǔ)法、使用方法及實(shí)際應(yīng)用,通過(guò)
    的頭像 發(fā)表于 11-09 01:10 ?870次閱讀
    <b class='flag-5'>技術(shù)</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'>語(yǔ)言</b>:<b class='flag-5'>掌握</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>條件判斷,從if到switch的應(yīng)用

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

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

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

    多重循環(huán),還是控制循環(huán)的執(zhí)行流程,掌握這些知識(shí)都將為的編程之路打下堅(jiān)實(shí)的基礎(chǔ)。嵌套循環(huán)在C語(yǔ)言中,循環(huán)語(yǔ)句可以嵌套使用,即在一個(gè)循環(huán)中再使用另一個(gè)循環(huán)。這種嵌套結(jié)
    的頭像 發(fā)表于 02-21 18:26 ?654次閱讀
    <b class='flag-5'>技術(shù)</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'>語(yǔ)言</b>:嵌套循環(huán)與循環(huán)控制的底層原理