C语言高级编程:深入理解const
生活随笔
收集整理的這篇文章主要介紹了
C语言高级编程:深入理解const
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
const修飾的變量,其實質是告訴程序員或編譯器該變量為只讀,如果程序員在程序中顯示的修改一個只讀變量,編譯器會毫不留情的給出一個error。
而對于像數組溢出,隱式修改等程序不規范書寫造成的運行過程中的修改,編譯器是無能為力的,也說明const修飾的變量仍然是具備變量屬性的。
?
測試平臺:64位?X86?Ubuntu
代碼1:
#include<stdio.h>void main(void) {const char a = 0;a = 100;printf("the a is %d\n" ,a); }結果:
baoli@ubuntu:~/c$ gcc const.c
const.c: In function ‘main’:
const.c:6:9: error: assignment of read-only variable ‘a’
?????????a = 100;
說明:a是只讀變量,且需要在定義時賦初值,定義后a的值不能被顯性改變。
?
代碼2:
#include<stdio.h>void main(void) {char buf[4];const char a = 0;buf[-1] = 88;printf("the a is %d\n" ,a); }結果:
baoli@ubuntu:~/c$ ./a.out
the a is 88
說明:const修飾的變量,其實質是告訴程序員和編譯器該變量為只讀,而對于像數組溢出,隱式修改等程序不規范書寫造成的運行過程中的修改,編譯器是無能為力的,也說明const修飾的變量仍然是具備變量屬性的。
?
總結
以上是生活随笔為你收集整理的C语言高级编程:深入理解const的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux C bool变量
- 下一篇: 降息对银行股是利好还是利空 降息对银行股