const:只能用来修饰变量(局部、全局)
const修饰变量时:变量变成 只读变量,但要注意变量的值并不是真的不能被修改
错误例子
#include <stdio.h>
int main()
{
const int count = 5;
count++; //这个地方会报错
printf("count is %d\n",count);
}
运行结果图
error:count为只读变量
改变const 声明变量的值的例子
#include <stdio.h>
int main()
{
const int count = 5;
int *p = &count;
*p = 10;
printf("count is %d\n",count);
}
结果图
所以const声明的变量还是和常量有区别的。
只读变量:变量的内存空间的值还是可以修改的,但是不能使用变量名直接修改
const距离谁近,谁就不能改变。
int const * p = &count; //不能通过p来修改p指向的内存空间 *p 不能操作
int * const p = &count; //不能通过p来修改 p对应的内存空间 p 不能操作
const int * const p = &count; //不能通过p来修改p指向的内存空间和p对应的内存空间
*p 和 p 都不能操作
const的使用场景:修饰函数的形参,提供安全的访问接口函数,防止函数实现过程中修改实参变量的值