C語言中,被const限定的變量是不允許被改變的,即修飾一個(gè)不可變的變量,屬于只讀變量。
1、與常量的區(qū)別:
常量在程序編譯過程中沒有分配內(nèi)存,自然不能夠改變常量的值。而只讀變量則在內(nèi)存中分配的有地址,只不過這個(gè)值由編譯器限定不允許被修改。const用來限定一個(gè)變量不允許被改變的修飾符。
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在后面的聲明等價(jià):
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位于*的左側(cè),則const用來修飾指針?biāo)赶虻淖兞,即指針指向(yàn)槌A浚蝗绻鹀onst位于*的右側(cè),則const用來修飾指針本身,即指針本身是常量。
以上為const較常用的最簡單的用法,在http://wenku.baidu.com/view/0f6b2c350b4c2e3f5727637d.html一文中有關(guān)于const更高深的理解及其用法。