C語言中,被const限定的變量是不允許被改變的,即修飾一個不可變的變量,屬于只讀變量。
1、與常量的區別:
常量在程序編譯過程中沒有分配內存,自然不能夠改變常量的值。而只讀變量則在內存中分配的有地址,只不過這個值由編譯器限定不允許被修改。const用來限定一個變量不允許被改變的修飾符。
2、const和指針:
const int nvalue;//nvalue是const
const char *pcontent;//*pcontent是const,pcontent可變
const (char*)pcontent;//pcontent是const,*pcontent可變
char* const pcontent;//pcontent是const,*pcontent可變
const char * const pcontent;//pcontent和*pcontent都是const
上述聲明分別于以下const在后面的聲明等價:
int const nvalue;//nvalue是const
char const *pcontent;//*pcontent是const,pcontent可變
(char *)const pcontent;//pcontent是const,*pcontent可變
char*const pcontent;//pcontent是const,*pcontent可變
char const* const pcontent;//pcontent和*pcontent都是const
判斷原則:沿著*號劃一條線,如果const位于*的左側,則const用來修飾指針所指向的變量,即指針指向為常量;如果const位于*的右側,則const用來修飾指針本身,即指針本身是常量。
以上為const較常用的最簡單的用法,在http://wenku.baidu.com/view/0f6b2c350b4c2e3f5727637d.html一文中有關于const更高深的理解及其用法。