在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>帶你在單片機編程中熟練使用const(可下載)

帶你在單片機編程中熟練使用const(可下載)

2025-04-01 | pdf | 464.91 KB | 次下載 | 免費

資料介紹

在 C 語言關鍵字中 const 舉足輕重,我們今天就深度聊一聊 const 的定義和實際應用,讓它 不再是迷C 語言中 const 關鍵字是 constant 的縮寫,是恒定不變的意思。通常翻譯為常量、常數等

 我們一看到 const 關鍵字馬上就想到了常量。這是不精確的,精確來說應該是只讀變量其 值在編譯時不能被使用,因為編譯器在編譯時不知道其存儲的內容

那么 const 推出的初始 目的正是為了取代預編譯指令,消除它的缺點,同時繼承它的優點

事實上在 C 語言中 const 功能很強大,它可以修飾變量、數組、指針、函數參數等

1、const 修飾的只讀變量

C 語言中采用 const 修飾變量,功能是對變量聲明為只讀特性,并保護變量值以防被修改。 例如:

const int Max = 100;

int Array[Max];

這個大家可以在 Visual C++6.0 創建一個.c 文件測試一下,你會發現在.c 文件中編譯器會提示出錯。我們知道定義一個數組必須指定其元素的個數,這也從側面證實在 C 語言中 const修飾的 Max 仍然是變量,只不過是只讀屬性罷了

還有值得注意的是,定義變量的同時,必須初始化,并且不能再重新賦值

2、節省空間,避免不必要的內存分配,同時提高效率

編譯器通常不為普通 const 只讀變量分配存儲空間,而是將他們保存在符號表中

這使得它 成為一個編譯期間的值,沒有了存儲與讀內存的操作,使得它的效率也很高

例如:

#define M 3 //宏常量

const int N= 5; //此時并未將 N 放入內存中

int i = N; //此時為 N 分配內存,以后不再分配

int I = M; //預編譯期間進行宏替換,分配內存

int j = N; //沒有內存分配

int J = M; //再進行宏替換,又一次分配內存

const 定義的只讀變量從匯編的角度來看,只是給出了對應的內存地址,而不是像#define 一樣給出的是立即數

所以,const 定義的只讀變量在程序運行過程中只有一份備份(因為 它是全局的只讀變量,存放在靜態區)

而#define 定義的宏常量在內存中有若干個備份

#define 宏是在預編譯階段進行替換,而 const 修飾的只讀變量是在編譯的時候確定其值

#define 宏沒有類型,而 const 修飾的只讀變量具有特定的類型

3、修飾一般變量

一般變量是指簡單類型的只讀變量。這種只讀變量在定義時,修飾符 const 可以用在類型說 明符前,也可以用在類型說明符后,例如:

int const i = 2; 或 const int i = 2;

4、 修飾數組

C 語言中 const 還可以修飾數組,舉例如下:

const int array[5] = {1,2,3,4,5};

array[0] = array[0]+1; //錯誤

數組元素與變量類似,具有只讀屬性,不能被更改;一旦更改,如程序將會報錯

5、 修飾指針

C 語言中 const 修飾指針要特別注意,共有兩種形式,一種是用來限定指向空間的值不能修

改;另一種是限定指針不可更改。舉例說明如下:

Const 離誰近修飾誰的原則

例如:

const int * p1; //定義 1,p1 可變,p1 指向的對象不可變

int * const p2; //定義 2,p2 不可變,p2 指向的對象可變

上面定義了兩個指針 p1 和 p2

在定義 1 中 const 限定的是*p1,即其指向空間的值不可改變,若改變其指向空間的值如

*p1=20,則程序會報錯;但 p1 的值是可以改變的,對 p1 重新賦值如 p1=&k 是沒有任何問 題的

完整版技術文檔請點擊文章開頭普通下載

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

  • --
    文章
  • --
    閱讀
  • --
    粉絲

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 国产午夜在线视频 | 1024你懂的国产日韩欧美 | 欧美天天 | 国产网站黄色 | 小雪被老外黑人撑破了 | 农村妇女色又黄一级毛片卡 | 亚洲情a成黄在线观看 | 国模私拍视频在线 | 亚洲福利视频一区二区三区 | 久久久久88色偷偷免费 | 亚洲爱爱网 | 很黄的网站在线观看 | 亚洲va久久久噜噜噜久久男同 | 欧美激情αv一区二区三区 欧美激情第一欧美在线 | 国产三级在线观看播放 | 激情在线视频 | 国产美女一级视频 | 免费两性的视频网站 | 精品国产三级a∨在线 | 欧美特级午夜一区二区三区 | 能看的黄网 | 国产看色免费 | 天天综合日日噜噜噜 | 人人舔 | 能在线观看的一区二区三区 | 日日爽夜夜爽 | 中国一级特黄特色真人毛片 | 国产黄色一级网站 | 丝袜紧身裙国产在线播放 | 天天视频色版 | 欧美午夜视频一区二区三区 | 亚洲一区二区三区免费观看 | 777国产精品永久免费观看 | 美女扒开尿囗给男生桶爽 | 就是操就是干 | 久久久久久久久久免观看 | h免费视频 | 国内自拍欧美 | 男女一级特黄a大片 | 正在播放国产乱子伦视频 | 四虎影视免费 |