常量与指针 const

指针变量

# 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=&num;
          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=&num;//此时就变成了指针常量 
 *p=1024;
 printf("%d",*p);//此时指向的值可以改变
 p=&num; //被禁止 
 return 0;
 } 

总结:指向非常量的常量指针

指针自身不可以被修改

指针的值可以被修改

指向常量的常量指针

指针自身不可以被修改

指针的值不可以被修改


指向“指向常量的常量指针”的指针

# include<stdio.h>
int main()
{
    int num =520;
    const int cnum=880;
    const int * const p=&num;
    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;
}

指向“指向常量的常量指针”的指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值