您的位置首页百科问答

常量指针与指针常量的区别

常量指针与指针常量的区别

的有关信息介绍如下:

常量指针与指针常量的区别

常量指针是指--指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而可以指向另一个常量。 指针常量是指--指针本身是常量。它指向的地址是不可改变的,但地址里的内容可以通过指针改变。它指向的地址将伴其一生,直到生命周期结束。有一点需要注意的是,指针常量在定义时必须同时赋初值。2.使用方法 写法上的区别: 常量指针:const 在*之前 指针常量:const在*之后。 使用举例:(1) 常量指针使用:如 int b, c; int const *a; a = &ba = &c 都可以,唯独它指向的内容不能被修改。如:*a=20;这是违法的!错误!(2) 指针常量使用如 int a ,b; int * const p = &a表示p是一个常量指针它指向变量a的内存。指针常量不能再用p指向其他变量,如 p = &b 错误!可以修改指向内存的值,如:* p = 20; 指针常量声明的时候必须像上式那样赋初值。指针常量也不能释放,用p指向NULL,即p = NULL;会在编译时报错/opt/test/test.c:649: error: assignment of read-only variable `p'还有一个记住他们不同形式的技巧!看const关键字,他后面的不可修改,如int * const a = &b 后面是a,则说明a不能修改!int const * a = &b后面是*a则说明*a不可被修改!