指向常量的指针和常量指针的区别简单理解
指向常量的指针和常量指针的区别简单理解
1.指向常量的指针:常量是对于值的,而不是对于指针,所以如果试图通过指针取值改变
值时,会报错。但可以改变指针,让指针指向其他变量的指针。
2.常量指针:常量是对于指针的,所以指针一旦指向了某个变量的指针,就不能再指向
其他的变量指针。但值是可以改变的。
#include <stdio.h> int main(void) { int n = 10; int m = 12; int k = 13; int h = 14; //*********************************************** /*测试指向常量的指针*/ /*声明一个指向常量的指针,指针指向整型*/ const int *pn = NULL; pn = &n; printf("value = %d\n", *pn); /*试图通过指针取值改变n的值,报错*/ /* *pn = 11; */ /*改变指向,成功*/ pn = &m; printf("value = %d\n", *pn); //************************************************* /*声明一个常量指针, 并给指针指向变量的地址*/ int *const pk = &k; printf("pk1 = %d\n", k); /*试图改变指针指向的地址,报错*/ /* pk = &h; */ /*可以改变指针指向的值*/ *pk = 18; printf("pk2 = %d\n", k); return 0; }