*和const谁在前面就先读谁。
指针常量只能指向一个地址,且需再初始化的时候给出地址,之后不能再指向其他的变量,但是可以修改它所指向的变量的值。
#include<stdio.h>
int main()
{
int a = 3;
//定义指针常量,在定义时就要初始化,且不能改变,但是可以通过指针修改变量的值
int *const p = &a;
*p = 4;
printf("%d\n",*p); //输出的结果是4
return 0;
}
常量指针可以指向不同的变量,但是不能修改变量的值
#include<stdio.h>
int main()
{
//定义常量指针
const int *p;
int const *p1;
int a = 3, b = 4, c = 5, d = 6;
p = &a;
p1 = &b;
printf("%d %d\n", *p, *p1); //输出结果为:3 4
//常量指针可以修改p,如指向变量c
p = &c;
p1 = &d;
printf("%d %d\n", *p, *p1); //输出结果为:5 6
//常量指针不能够通过指针修改变量的值
//*p = 1; 程序会报错
return 0;
}