zoukankan      html  css  js  c++  java
  • 类型别名

    类型别名:相当于给某种类型起了一个别名,多用于自定义类型,他让复杂的类型名字变得简单明了,易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的.

    类型别名和类型名字等价,只要是类型的名字能出现的地方,就能使用类型别名.

    1 SI item;  // 等价于 Sales_item item

    一、两种方法:

    1.传统方法:使用关键字 typedef   //  typedef 类型 类型别名;

    2.c++11新标准:别名声明--用关键字 using 作为别名声明的开始,其后紧跟别名和等号,其作用是把等号左侧的名字规定成等号右侧类型的别名(有赋值的感觉,易于理解和记忆)   //  using 类型别名 = 类型;

    1 using SI = Sales_item;   //  SI 是Sales_item 的同义词
    2 typedef Sales_item SI;  //  SI 是Sales_item 的同义词

    二、类型别名指代复合类型

    typedef char * pstring;

    const pstring cstr = 0;

    上面用类型别名pstring指代char *,即pstring是指向char的指针,故const修饰的是指针,也即cstr是指向char的常量指针。// char* //指向 char 的指针

    若我们尝试把类型别名替换成它本来的样子,以理解语句的含义,则有:const char * cstr;,这样我们错误地认为const修饰的是char。

    所以这种理解是错误的。声明语句中用到pstring时,其基本数据类型是指针,而用char *重写后,数据类型就变成了char,*成为了声明符的一部分。即改写后的结果是,const char成了基本数据类型,声明了一个指向const char的指针,而正确的结果是声明了一个指向char的常量指针。

  • 相关阅读:
    文件输出debug
    sweetalert
    js认清this的第一步
    Creating default object from empty value in PHP?
    matplotlib画图
    python解析库
    zabbix监控ssl证书过期时间
    aws 预留实例到期监控
    aws ec2挂载 s3
    aliyun挂载oss
  • 原文地址:https://www.cnblogs.com/SophieWang-cmu/p/12820154.html
Copyright © 2011-2022 走看看