常量指针与指针常量的区别
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i1=20, i2=30;
//常量指针,指针的值不可变,但是指针的地址可变//
const int *p=&i1;//先常量,再指针,所以是常量指针
//指针常量,指针的地址不变,但指针的值可变//
int *const p = &i2;//先指针再常量,所以是指针常量
printf("%d\n", *p);
}
//奇怪的是这样竟然可以编译通过
const int i2=30;
int *p ;
p = &i2;
*p = 6;
printf("%d\n", *p);
//这种操作导致指针值与地址均不可改
const int i2=30;
const int *const p=&i2 ;
printf("%d\n", *p);