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较常用的最简单的用法。