const 是C语言的一个关键字,用来修饰变量或者指针,而且const修饰符修饰的数据类型是不能改其值的,非要改的话可以通过指针操作,但不建议这么做。
关于细节问题,直接看代码吧!我想说的都在代码里面。
#include <stdio.h>
/*
要注意区分下面的写法:
const int *p;
int const *p;
int * const p;
const int * const p;
*/
int main(int argc, const char *argv[])
{
int a = 10;
printf("a = %d\n",a);//获取a的值
int b = a;//获取a的值
a = 100;//修改a的值
//const 修饰变量
//const int a1; //只读变量一定要初始化 否则没意义
const int a1 = 10;//const 修饰的a1是个只读变量 不可以被修改
printf("a1 = %d\n",a1);//获取a1的值
int b1 = a1;//获取a1的值
//a1 = 100;//修改a的值
//const 修饰指针
int num = 100;
int num2 = 200;
const int *p = #//const 修饰的是 *p 表示不能通过 p 修改地址里面的值
//p = &num2;//正确的
//*p = 50;//错误的
num = 520;//正确的 通过num 修改没问题
//int const *p = #//等价于上面的 const int *p;
//int * const p;//const 修饰的是 p 表示p不能修改 也就是说p的指向不能变
int * const p2 = #
*p2 = 520;//正确的
p2 = &num2;//错误的
//const int * const p;//指针的指向不能变 也不能通过指针修改地址里的值
return 0;
}