微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

常量指针和指向常量的指针有什么区别?

常量指针:
常量指针是其值(指向的地址)不可修改的指针。 如果尝试修改指针值,将得到编译器错误
常量指针声明如下:

Data_Type * const Pointer_Name;
int *const ptr; //constant pointer to integer

当编译以下代码会得到编译器错误时,让我们看看下面的示例代码

#include<stdio.h>
int main(void)
{
    int var1 = 10, var2 = 20;
    //Initialize the pointer
    int *const ptr = &var1;
    //Try to modify the pointer value
    ptr = &var2;
    printf(%d, *ptr);
    return 0;
}

指向常量的指针:
在这种情况下,指向的地址的值是恒定的,这意味着不能更改指针指向的地址的值。
常量指针声明如下:

Data_Type  const*  Pointer_Name;

int const *ptr// pointer to const integer

下面代码演示一个指向常量的指针:

#include<stdio.h>
int main(void)
{
    int var1 = 100;
    // pointer to constant integer
    const int* ptr = &var1;

    //try to modify the value of pointed address
    *ptr = 10;

    printf(%d, *ptr);
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐