const
刚开始认识它,是在一份“沉甸甸”面试题里,从开始到现在了解它,还不足一个月,下面就浅谈一下我对const的理解。
首先,const的在英文解释里就是常量,而我们又知道,内存中有一个常量区,它是只读的,不可被修改的,所以用const可以强制保护你的数据不会被修改,例如下面的这段代码:
#include<stdio.h>
int main()
{
const char p[]="Hello world!";
//p[5]='\0'; //加上这行代码,程序编译不能通过,因为有const强制保护
printf("%s",p);
return 0;
}
如果想要改变输出结果,则要去掉const。
const与指针
const与指针,刚开始我也很懵,比如以下的形式:
int i;
const int *p1 = &i;
int const *p2 = &i
;
int *const p3 = &i;
其实这3个里面有两种形式是一样的,因为无非就是const p或者是const *p,所以当我们理解了,就会发现const在 * 后面就是说p不能被改变,如果在 * 前面就说明 *p 不能被改变。
以上就是我对const的一些理解。