用一段短小的程序说明const定义变量的一些细节区别
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=9;
int const a1=10;//必须赋初值
const int a2=11;//必须赋初值
int const *p1;
const int *p2;
p2=&a2;
p1=&a1;
p1=&a;//改变指向的变量
p2=&a;
a=3;//可以改a的值
//*p1=4;*p2=5;报错,不能直接改变指针的值,可以改变量的值
int b[3];
int *p4=b;
printf("%d %d %d %d\n",a1,a2,*p1,*p2);
//b[3]=(int*)malloc(8*sizeof(int));
return 0;
}