常量指针和指针常量

原创 2007年10月02日 22:11:00
关于常量指针和指针常量,这两个名词的含义还是有些争议的,
见http://www.cnblogs.com/lotusswan/archive/2005/10/11/252240.html
这里我采用英文称呼的办法来区分二者const pointer 和 pointer to const

Pointer to const(本文中称为“指向常量的指针”,也有文章称之为“常量指针”)
表现形式为const char *p;

(1)、指针内容存放的是常量的地址。
(2)、指针所指向的地址的内容是不可修改的。
(3)、指针本身还是个变量,指针指向的地址可以改变

比如:

int a;
const int *b = &a;//或int const *b = &a;
//这种情况下限定b所指的为常量,不能将*b作为左值进行操作,
//也就是不能通过b来改变a,不能出现如下代码:
*b = 5; //error
而可以出现以下代码:
int c;
b = &c;

Const pointer:(对这个称呼争议是比较大的,本文姑且称之为“指针常量”):
该指针本身是个常量,它是不可改变地址的指针,但是可以对它所指向的内容进行修改
比如:
int a;
int * const b = &a;
这时候写
*b = 5; //合法
却不能写
int c;
b = &c; //error
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C与指针 二 常量

ANSIC允许你声明常量,常量的样子和变量完全一样,只是它们的值不能修改。你可以使用如把const关键字来声明常量,如下面例子所示: int const a; const int a;   ...

指针常量与常指针CONST

  • 2010-06-14 12:43
  • 296B
  • 下载

c++常量指针特点

一个c++常量,因为其值不可更改,因此,导致他的指针的*p也是不可更改的。 这个const必然是修饰*的而非指针变量名。 这是因为一旦对这个常量取值,必然面对不可更改的问题,比如 const d...

指针、引用、const常量三者之间的关系

一、说明 指针和引用均实现对其他对象的间接访问。 1、指针:存放另一个对象的地址。 1)指针本身就是一个对象,允许对指针赋值和拷贝,而且指针可以先后指向几个不同的对象。 2)指针可以在定义时不...

c指针学习——之字符串常量

自己学习的时候,编写了一个小的指针练习: int main(void) { char* s1 = "Hello, World!"; char* s2 = "123456"; printf(s1)...

关于两种复合类型--引用和指针以及const常量限定符的一些总结

引用(不能作为对象): 起一个另外的名字而已,好比如*文华今天叫小华,明天别人叫他小文,他还是他。 注意上述中的引用应该是指“小文”这个名字符号,而不是指小文其人,故引用不是对象!故不能定义引用的...

函数的返回类型为指针类型时的若干思考(字符串常量问题)

By zieckey (http://blog.chinaunix.net/u/16292/index.html) 问题的引入: 看看下面的程序的输出: #inc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)