const在c中的用法
生活随笔
收集整理的這篇文章主要介紹了
const在c中的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
常量和變量的樣子完全一樣,只是常量的值不允許被修改。我們用const這個關鍵字來聲明一個常量。 例: ? ? ? ? ? const int a=10; ? ? ? ? ? ? ? ?int const a=10; 兩種方式都可以聲明一個常量效果是一樣的。
我們也可以用const來修飾指針:
const與標識符: ?例:? #define ?num ? ?20 ? ? ? ?const ?int ? ?i=20; 假如現在定義兩個數組arr[num],arr[i],雖然都能達到arr[20]的效果,但是我們還是傾向于使用arr[num],用戶名定義數組長度,或者作為限制循環次數的條件,有利于提高程序的維護性,即當我們要修改一個值時只需要修改聲明就可以了,不用像變量那樣每個都修改。
總結在C中的用法: 1、將變量修飾限定為常量。 2、修飾函數的形參,保護形參不被修改。 3、可以修飾指針。 4、在另一文件中引用常量extern const,可以保護被引用的值不被修改。
因為被const修飾的變量不允許被修改,所以編譯器認為被const修飾的變量就是一個常量,所以將他存在寄存器上,每次都從寄存器上引用這個值,所以我們可以偷偷的修改其內存中的值,并強制編譯器從內存中讀取真個值。
例: ?volatile ?int const i=10; ? ? ? int *p=(int *)&i; ? ? ? *p=20; 輸出i就等于20 ? ? ?? volatile 從內存中讀取。
我們也可以用const來修飾指針:
const與標識符: ?例:? #define ?num ? ?20 ? ? ? ?const ?int ? ?i=20; 假如現在定義兩個數組arr[num],arr[i],雖然都能達到arr[20]的效果,但是我們還是傾向于使用arr[num],用戶名定義數組長度,或者作為限制循環次數的條件,有利于提高程序的維護性,即當我們要修改一個值時只需要修改聲明就可以了,不用像變量那樣每個都修改。
總結在C中的用法: 1、將變量修飾限定為常量。 2、修飾函數的形參,保護形參不被修改。 3、可以修飾指針。 4、在另一文件中引用常量extern const,可以保護被引用的值不被修改。
因為被const修飾的變量不允許被修改,所以編譯器認為被const修飾的變量就是一個常量,所以將他存在寄存器上,每次都從寄存器上引用這個值,所以我們可以偷偷的修改其內存中的值,并強制編譯器從內存中讀取真個值。
例: ?volatile ?int const i=10; ? ? ? int *p=(int *)&i; ? ? ? *p=20; 輸出i就等于20 ? ? ?? volatile 從內存中讀取。
轉載于:https://www.cnblogs.com/Sunnylunch/p/5483145.html
總結
以上是生活随笔為你收集整理的const在c中的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《linux内核设计与实现》第一章
- 下一篇: 开发笔记- iOS监听某些事件的方法简单