[C++] const and char*】的更多相关文章

一.可能的组合: (1)const char*p (2)char const*p (3)char *const p(4)const char **p (5)char const**p (6)char *const *p (7)char **const p 当然还有在(5).(6).(7)中再插入一个const的若干情况,不过分析了以上7中,其他的就可类推了! 二.理解助记法宝: 1.关键看const 修饰谁. 2.由于没有 const *的运算,若出现 const * 的形式,则const实际上…
1.const char* p: p is a pointer to const char(char const* p 一样)   意思就是不能通过p指针来修改p指向的内容(但是内容可以修改). 2.char* p      : p is a pointer to char   意思就是可通过p指针来修改p指向的内容 3.char* const p: p is a const pointer to char   意思就是p指针是一个常指针,他指向的内存地址不能变,定义的时候就得初始化   一旦给…
由于没有const*运算,const实际上修饰的是前面的char*,但不能在定义时转换写成 const(char *)*p,因为在定义是"()"是表示函数. 三.深入理解7种组合 (0)程序 在执行时为其开辟的空间皆在内存(RAM)中,而RAM里的内存单元是可读可写 的:指针只是用来指定或定位要操作的数据的工具,只是用来读写RAM里内存单元的工作指针 .若对指针不加任何限定,程序中一个指针可以指向RAM中的任意位置(除了系统敏感区,如操作系统内核所在区域)并对其指向的内存单元进行读和写…
先说些题外话,今天学习execve(2)的使用,由于书上代码使用的是C89标准,所以下面这种代码都被我修改了 char* s[] = { "aaa", "bbb", "cc" }; 也就是在char前面加个const,因为"aaa"."bbb"."cc"都是字符串字面值(string literal),在C++标准中string literal只能转换成const char*,原因是即使…
const and char* NOTICE:   char  *str = "hello";  the value of str is the address of the first  letter (h) of string ;…
请看下面三种定义: const char *p; char const *p; char * const p; 首先看第一种,我们先看p,本着”从里往外”的原则,p是一个char *类型的变量,但char *前面有一个const修饰,即p所指向的内容为const类型不可修改,我们可以写如下程序进行实验,当试图对p指向的数组的第一个元素进行修改时,编译即可发现报错: 第二种:char const *p;  const位于char *之间,由于char *是p的类型,此种写法和const char…
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目.  事实上这个概念谁都有只是三种声明方式非常相似很容易记混.  Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:  把一个声明从右向左读.  char  * const cp; ( * 读成 pointer to )  cp is a const pointer to char  const char * p;  p is a…
转自 http://blog.csdn.net/todd911/article/details/7911995 const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读. char * const cp; ( * 读成 pointer to ) cp is a const pointer to char cons…
http://stackoverflow.com/questions/3228664/why-am-i-able-to-change-the-contents-of-const-char-ptr I passed a pointer ptr to a function whose prototype takes it as const. foo( const char *str ); Which according to my understanding means that it will n…
可以用const_cast     const char* aa = "this is a const string.";     char* bb = const_cast<char*>(aa);     return 0;   更多const_cast的用法如下: http://en.cppreference.com/w/cpp/language/const_cast…