cpp基础: 指针、常量、类型别名
2018-01-25 10:56
183 查看
如果类型别名指代的是符合类型或常量,那么把它运用到声明语句里就会产生意想不到的后果:
typedef char *pstring;
const pstring cstr = 0; // cstr是指向char的‘常量指针’
const pstring *ps; // ps是一个指针,它指向的对象是一个‘指向char的常量指针’
上述两条声明语句的基本数据类型都是const pstring,像我们理解的const是对给定类型的修饰,而pstring实际上代表的是指向char的指针类型,所以const修饰的是char*,而非我们一般所理解的
const char *cstr = 0; // 是对const pstring cstr的错误理解
Note: const修饰的是指针类型而非char类型
摘自: C++ primer
typedef char *pstring;
const pstring cstr = 0; // cstr是指向char的‘常量指针’
const pstring *ps; // ps是一个指针,它指向的对象是一个‘指向char的常量指针’
上述两条声明语句的基本数据类型都是const pstring,像我们理解的const是对给定类型的修饰,而pstring实际上代表的是指向char的指针类型,所以const修饰的是char*,而非我们一般所理解的
const char *cstr = 0; // 是对const pstring cstr的错误理解
Note: const修饰的是指针类型而非char类型
摘自: C++ primer
相关文章推荐
- C基础知识--指针类型的常量
- C语言回顾(六、基类型,数组指针,字符串指针,函数指针,文字常量区)——iOS开发基础
- 指针、常量和类型别名的困惑
- C++语法基础--类(class)--类型别名,this指针,初始化式,友元的一些注意细节
- 高效C编程(上) 基础数据类型,Loop,寄存器分配,函数调用,指针别名 ARM
- 【java基础】引用类型数组初始化中,setter和getter函数空指针问题
- Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换
- 黑马程序员--C#基础(二)-->关键字、数据类型、变量、常量
- C语言基础(二)常量、变量、类型转换、转义符、printf、scanf
- C#基础指针类型
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- 黑马程序员—Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- 常量数组类型在被瘾式转为指针类型出错,你注意过没?
- 一点基础的东西:Objective-C的类型和常量
- C#基础之类型和成员基础以及常量、字段、属性
- 04_Swift2基础之类型安全和类型推测+字面量+类型别名
- go的变量、常量、类型别名
- C++语法基础--模板实参推断,模板类型形参的实参的受限转换,模板实参推断与函数指针
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- 【Go入门教程4】变量(var),常量(const),内置基础类型(Boolean、数值 byte,int,rune、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值