指针变量
# include<stdio.h>
int main()
{
const float pi=3.14;//失去了写入修改的功能 ,只剩只读(read only)的功能
//pi=3.1415926; //这样写程序就会报错 */
int num=520;
const int cnum=880;
const int *pc=&cnum;
printf("cnum:%d &cnum:%p \n",cnum,&cnum);
printf("*pc:%d,pc:%p\n",*pc,pc);
//*pc=120;//报错
pc=#
printf("*pc:%d,pc:%p\n",*pc,pc);
num=1000;//修改number的值就可以了
printf("*pc:%d,pc:%p\n",*pc,pc);
return 0;
总结:
—— 指针可以修改成指向不同的常量
——指针可以修改为指向不同的变量
——可以通过解引用来读取指针指向的数据 指针变量
——不可以通过解引用修改指针指向的数据
指向常量的指针常量
# include<stdio.h>
int main()
{
int num =520;
const int cnum=880;
int * const p=#//此时就变成了指针常量
*p=1024;
printf("%d",*p);//此时指向的值可以改变
p=# //被禁止
return 0;
}
总结:指向非常量的常量指针
指针自身不可以被修改
指针的值可以被修改
指向常量的常量指针
指针自身不可以被修改
指针的值不可以被修改
指向“指向常量的常量指针”的指针
# include<stdio.h>
int main()
{
int num =520;
const int cnum=880;
const int * const p=#
const int *const *pp=&p;
printf("pp:%p,&p:%p\n",pp,&p);
printf("*pp:%p,p:%p\n",*pp,p);
printf("**pp:%d,*p=%d,num:%d",**pp,*p,num);
return 0;
}
指向“指向常量的常量指针”的指针