c++中关于 “指向常量的指针”和“ 常指针”的定义声明, 很是不理解啊。

const char * name;
char * const name;
就拿这两个来说,这种定义形式,我分不清楚其中哪个是定义“常指针”,哪个定义的是“指向常量的指针”,望大侠能帮我给个好理解的说法

第一个是指向常量的指针
第二个是常量指针

很简单啊,看*前面的东东,它表示指针指向的类型,第一个const char就是常量,第二个char当然是普通字符型了,*后面的const表示这个变量本身是常量,即常指针。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-12
const char * name
name 是指向常量的指针, 意思是name所指的地方是常量,如果有这样的语句
*name = 'a'; 编译会出错。 name本身不是常量, 所以像name++; name = p;这样的语句都是合法的。

char * const name;
name是常量,如果这样定义 那么 所以像name++; name = p;这样的语句编译会报错。
而name所指的东西不是常量, 可以写出 *name = 'a';这样的语句。
第2个回答  2012-03-12
const char* name; 是指向常量的指针,它的意思是一旦name指向了一片内存空间,那么就不可以通过name来修改这片内存的数据,但name还可以再指向别的内存空间。
char* const name; 是常量指针,它的意思是,一旦name初始化指向了一片内存空间,name就不可以再指向别的内存空间,但可以通过name来修改这片内存空间的数据。
第3个回答  2012-03-12
第一种是“指向常量的指针”,就 指针name是可以变的,但是它指向空间的值不可变,*name不可变,如 *name = 't'就是错的

第二种是 “常指针” , 指针 name 是不可变的,它只能指向这个空间,但指向的空间的值可变,就是可以有 *name = ‘c'这样的操作
第4个回答  2012-03-12
很简单么,关键看const最近修饰的是哪个
char * const name;
修饰的是name,所以那么被常量化了,那么不看const的话,name是什么,是一个指针,所以很显然name是一个常指针

const char * name;
修饰的是char,所以指向常量的指针

FYI,const char * name;也可以写作char const * name; 两者是一个意思

C\/C++杂谈(1)指针常量、常量指针
指针常量:const int* p 常量指针:int* const p总结来说,指针常量限制的是指针本身,而常量指针限制的是指针所指向的值。理解它们的区别有助于避免在编程中出现不必要的错误。

c++里指向字符串常量的指针和指向字符串的常量的指针有什么区别啊
常量指针的const应当写在 *星号的右边.指向常量字符串的常量指针的写法是 const char* const p = "xx"; 要2个const

指向常量的指针和常量指针的区别
第一个是限定x指向的对象的值不能修改,第二个是限定x的值不能修改,也就是说,x指定的对象不能修改。

指针常量 指针常量和常量指针的区别
指针常量的值是指针,这个值因为是常量,所以不能被赋值。在C\/C++中,指针常量这样声明:只要const位于指针声明操作符右侧,就表明声明的对象是一个常量,且它的内容是一个指针,也就是一个地址,并且在声明的时候一定要给它赋初始值。一旦赋值,以后这个常量再也不能指向别的地址。常量指针的使用要注意...

C++中常函数的返回值是数组指针就要定义为常指针 返回值是变量指针就...
首先你要明白两个概念:常量指针和指针常量。常量指针就是指向常量的指针,指针所指向的地址的内容是不可修改的。而指针常量就是是指针的常量,它是不可改变地址的指针,但是可以对它所指向的内容进行修改。根据你的需要,如果函数返回的那个数组指针指向的内容是不允许修改的话,那么其返回值就定义为常量...

指针常量和常量指针的区
指针常量和常量指针在C++中具有不同的性质。主要的区别在于,常量指针一旦初始化,指向的内存地址是固定的,不能更改指向,例如`int * const a = &b`,即使想改变`a`指向其他变量如`a = &c`也是不允许的,但可以修改其指向内存的值,如`*a = 20`。而指向常量的指针,如`int const *a`,...

【C\/C++】深入理解C++中常量指针、指针常量、引用的区别
在C++中,"&"操作符不仅表示取地址,还能用于定义引用。理解指针、常量指针与指针常量的差异,是深入C++语言的关键。指针如同变量,不仅拥有地址,也承载所存放的地址值。常量指针的特点是,它指向的变量保持不变,但指针自身的地址可调整。在C++中,常量指针常用于传递只读属性参数,确保参数在函数调用过程...

求助指针常量,指向常量的指针,常量指针有什么区别
指针常量是指--指针本身是常量。它指向的地址是不可改变的,但地址里的内容可以通过指针改变。它指向的地址将伴其一生,直到生命周期结束。有一点需要注意的是,指针常量在定义时必须同时赋初值。2.使用方法 写法上的区别:常量指针:const 在*之前 指针常量:const在*之后。使用举例:(1) 常量指针...

C++ 引用和指针的区别 常量指针和指针常量的区别
引用 相当于常量指针。 不过使用起来不需要*, 所以更简洁。常量指针,是指针指向的是常量, *p不可改变。const char *p;或者char const *p;指针常量, 是指针本身是常量, p不可改变。 char * const p;

常量指针与指针常量的区别
因此,理解并正确使用常量指针和指针常量是每个C++程序员的基本素养。总结来说,常量指针与指针常量的主要区别在于它们修饰的对象和所表达的含义。常量指针修饰的是指针所指向的数据,而指针常量修饰的是指针本身。理解这一区别并正确使用这两种类型的指针对于C++编程具有重要意义。

相似回答