一.C語言中的const 數組
const是C語言中保留的一個關鍵字,它用來限定一個變量是隻讀的,即不可變的。程序中使用const能夠在必定程度上提升程序的健壯性,可是程序中使用過多的const,可能在對代碼的閱讀時增長必定的難度。函數
1)用const修飾通常變量spa
注意在C語言中,用const修飾的變量必須在聲明時進行初始化(用來修飾函數的形參除外);指針
如:code
const int n; 這種聲明方式是錯誤的對象
const int n=5; 正確blog
void fun(const int n); 正確作用域
const char a; 錯誤class
char * const p; 錯誤基礎
const char *p;正確(注意這種爲何是正確的),由於這裏const是修飾p指向的變量,而不是指針變量p自己
一旦一個變量被const修飾後,在程序中除初始化外對這個變量進行的賦值都是錯誤的。
如:
const int n=5;
n=3; 錯誤
(2)const與指針搭配使用
首先必須弄清楚兩個基礎概念:指針常量和常量指針
指針常量:即指針自己的值是不可改變的,而指針指向的變量的值是能夠改變的;
常量指針:即指針指向的變量的值是不可改變的,而指針自己的值是能夠改變的;
二.C++中的const
C語言和C++中的const有很大區別。在C語言中用const修飾的變量仍然是一個變量;而在C++中用const修飾事後,就變成常量了。
如:
const int n=5;int a[n];
這種方式在C語言中會報錯,緣由在於聲明數組時數組的長度必須爲一個constant,即常量,雖然n用const限定了,但n終究是一個變量,所以會報錯;
可是在C++中不會報錯,由於在C++中用const修飾事後,n就已經等同於一個常量了,所以能夠經過。
static
C語言時代的static 在C語言中,只存在函數和變量。 A、函數和全局變量,一旦加上static關鍵字,就限制了其做用域爲本文件有效。 B、局部變量,一旦加上static關鍵字,其生命其爲整個應用程序。 C++語言時代的static 在C++語言中,除了向C語言兼容外,提供了類的支持,一樣static在C語言的特性在C++一樣有效。 C、類的static關鍵字,在C++的類中,static只能用於修飾數據成員和函數成員(不能修飾構造函數和析構函數),用於該類所具備的信息而不屬具體某個對象. D、<注意>若是在類的成員函數中定義了static局部變量,其值會在全部對象中共享!這一點很差!