const char*, char const*, char*const的区别

来源:互联网 发布:怪物猎人捏脸数据女 编辑:程序博客网 时间:2024/06/16 19:55

事实上这个概念谁都有只是三种声明方式非常相似:

Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:

把一个声明从右向左读。

char * const cp; ( * 读成 pointer to ) cp is a const pointer to char,p不可变,*p可以变,即指向的地址不变,内容可变。

const char * p; p is a pointer to const char;*p不可变,p可变,但是还是只能指向常量。

char const * p; 同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。

C++标准规定,const关键字放在类型或变量名之前等价的。


另:指针函数是一个函数,返回的类型是某个指针;函数指针是一个指针,是指向一个函数的指针。


char * const*(*next)()表示的是一个函数指针,这个指针指向一个函数,该函数返回一个指针a,a指向的是指针b,b的类型是const char*。



0 0