cpp基础: 指针、常量、类型别名

如果类型别名指代的是符合类型或常量,那么把它运用到声明语句里就会产生意想不到的后果:

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

你可能感兴趣的:(cpp)