指向常量的指针和常量指针的区别简单理解

指向常量的指针和常量指针的区别简单理解
 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; 
                                           
}

  

posted @ 2013-05-17 11:10  A.Kun  阅读(282)  评论(0编辑  收藏  举报