指针和常量

常量指针变量:仅指向唯一内存地址的指针变量,即不能修改原本指向的地址

int main()
{
    int num1 = 10;
    int num2 = 50;
    int* const ptr1 = &num1;
    
    ptr1 = &num2;

    printf("value stored at pointer = %d\n",*ptr1);
    system("pause");
    return 0; 
}
//编译错误,ptr1 = &num2这句代码引起的,指针原本指向的是num1,不能再修改其指向num2

常量指针:内存地址存放的值不能通过指针去修改值。

int main()
{
    int num1 = 10;
    int num2 = 19;
    const int* ptr1 = &num1;
    
    *ptr1 = 20;

     num1 = 20;


    printf("value stored at pointer = %d\n",*ptr1);
    system("pause");
    return 0; 
}
编译错误: *ptr1 = 20;这句代码引起的,不能通过指针修改指定内存地址的值,即ptr1指向的是num1的地址,不能通过指针修改num1的值,但可以使用num1 = 20这句代码修改num1的值。

指针常量:内存地址存放的值和指针指向的地址都不能通过指针去修改值

int main()
{
    int num1 = 10;
    int num2 = 19;
    const int* const ptr1 = &num1;

    *ptr1 = 20;//不能修改常量指针指向的值

     num1 = 20;

     ptr1 = &num2;//不能修改常量指针的值
    

    printf("value stored at pointer = %d\n",*ptr1);
    system("pause");
    return 0; 
}
编译错误:*ptr1对应的内存num的地址的值不能通过指针修改,ptr1原本指向num1,也不能修改其指向别的内存地址。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值