常量指针:
常量指针是其值(指向的地址)不可修改的指针。 如果尝试修改指针值,将得到编译器错误。
常量指针声明如下:
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;
}