C++ 2.5.1 处理类型:类型别名
Posted 匆忙拥挤repeat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 2.5.1 处理类型:类型别名相关的知识,希望对你有一定的参考价值。
文章目录
类型别名
传统方式,使用 typedef, cpp11,可使用 using
typedef int mi; //int 别名 mi
mi xa = 88;
using mii = mi; //mi别名mii
mii xb = 88;
cout << (xa == xb) << endl; //output 1
指针类型别名
typedef char* ps; //指向 char 的指针; char* 的别名 ps;
char xx = 'X';
const ps str = &xx; //指向 char的 常量指针
*str = 'F'; //地址指向值可变
//str = &zz; //常量指针的地址不可变,本句会 error
cout << *str << endl;
如果将 ps 代表的 char* ,代入到 表达式 const ps str = &xx;
会得到 const char* str = &xx;
(指针写在紧靠类型后,还是变量前,都没有影响)
在上一节学的,这种形式,就是 常量指针,底层const,无法通过 *指针变量
赋值。而实际上这里是可以赋值的。且无法改变指针变量的地址。这倒是符合指针常量,即顶层const的"无法改变变量自身(地址)"的特性了。
const ps *p; //常量指针的指针
p = &str;
cout << **p << endl; //输出 F
//既然 p 是常量指针的指针,重点是,它就是一个指针,可以修改地址,指向一个 char(常量)的地址
char zz = 'Z';
char * q = &zz; //这里改成常量指针形式 char *const q = &zz; 也是一样的结果
p = &q;
cout << **p << endl; //输出 Z
这种指针类型别名,简直是个坑。
以上是关于C++ 2.5.1 处理类型:类型别名的主要内容,如果未能解决你的问题,请参考以下文章