const char * 组合理解】的更多相关文章

1 . const char *ptr 从char *ptr 可以理解为指向字符常量的指针,ptr是一个指向char *的常量,*ptr的值为const,不能修改. 2. char const *ptr 同上 3. char * const ptr 定义一个指向字符的指针常数,不能修改指针,但可以修改指针指向的内容. 如char a a = 0x01; a = 0x02可以改变 &a指向的内容,但是&a不可以改变. 1和2 都是指针指向的值不可以改变,3是指针不可以改变.(地址不变-内容改…
一.可能的组合: (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实际上…
由于没有const*运算,const实际上修饰的是前面的char*,但不能在定义时转换写成 const(char *)*p,因为在定义是"()"是表示函数. 三.深入理解7种组合 (0)程序 在执行时为其开辟的空间皆在内存(RAM)中,而RAM里的内存单元是可读可写 的:指针只是用来指定或定位要操作的数据的工具,只是用来读写RAM里内存单元的工作指针 .若对指针不加任何限定,程序中一个指针可以指向RAM中的任意位置(除了系统敏感区,如操作系统内核所在区域)并对其指向的内存单元进行读和写…
定义中用到&是独立引用. 比如: char i; char &a=i; 表示a是i的一个单独引用. 当有i='a'时,也有a='a'; 当有a='c'时,也有i='c'; 两个变量的标示符都代表同一个内存空间地址. 声明中带有const时,表示为常量. 对const char* const &a=i从右读起 const &a表示a为常量,一开始要对其赋值,这里赋予i,表示a是i的一个单独引用.在以后的程序中,不能对a本身进行值的修改,即不允许有&a=othervar…
1.原版的strcpy()函数原型 char * strcpy( char *strDest, const char *strSrc ) { assert( (strDest != NULL) && (strSrc != NULL) ); char *address = strDest; while( (*strDest++ = * strSrc++) != ‘\0’ ); return address; } 在库函数中,字符的赋值所采用的循环代码,只用了一行代码:while( (*str…
static const char* const str[] = {“string”} 静态常量型指针变量 static const char* 常量型变量 const str[] 这样修饰的作用为 指针 str 不能做修改.做运算 即 str++,str-- 非法 该指针为 only-read 变量 str 中的内容不能修改 该变量为 only-read…
先说些题外话,今天学习execve(2)的使用,由于书上代码使用的是C89标准,所以下面这种代码都被我修改了 char* s[] = { "aaa", "bbb", "cc" }; 也就是在char前面加个const,因为"aaa"."bbb"."cc"都是字符串字面值(string literal),在C++标准中string literal只能转换成const char*,原因是即使…
/******************************************************************************* * 版权所有: * 模 块 名: * 文 件 名:class_default_constructor_for_const_member.cpp * 实现功能: * 作 者:XYZ * 版 本:V1.0 * 日 期:2013.08.12 * 其他说明:xiao13149920@foxmail.com *******************…
const关键字用来作甚?const是一个类型修饰符.常见的类型修饰符有哪些? short long unsigned signed static autoextern register 定义一个变量. (1)类型描述符中如果有多个关键字,他们出现的位置不影响对变量的限制. short int i; int short i; const int a; int const a;//上面两个是一样的. (2) const int *a; int* const a; int const* const…
我之前也是以为我对const char *ptr 这种形式的写法是掌握了的,真的,不就是说一个指针是不可改变的吗? 那么问题就来了,到底是ptr指针本身不能改变,还是ptr执行的值不能改变呢? 从网上的资料上看,有如下的解释: Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:  把一个声明从右向左读. char  * const cp; ( * 读成 pointer to )  cp is a const pointer to char ---…