[C++ Primer] 变量和基本类型

[C++ Primer] 变量和基本类型

变量

  1. 默认初始化

    如果定义变量时没有指定初值,则变量默认初始化,此时变量被赋予“默认值”。默认值到底是什么由变量类型决定,同时定义变量的位置也会对此有影响。

    内置类型:其默认值由定义的位置决定。定义于任何函数之外的变量被初始化为0。

    绝大多数类都支持无须显示初始化而定义对象,这样的类提供一个合适的默认值,比如string类若没指定初值则生成空串。

const 限定符

  1. 顶层const:可以表示任意的对象是常量,对任何数据类型都适用;
    底层const:与指针和引用等复合数据类型的基本类型部分有关。

    int i = 0;
    int *const p1 = &i;		// 不能改变p1,顶层const
    const int ci = 42;		// 不能改变ci,顶层const
    const int *p2 = &ci;	// 允许改变p2,底层const
    const int *const p3 = p2;//右边的const是顶层const,左边的是底层const
    const int &r = ci;		// 用于声明引用的const都是底层const
    
  2. 常量表达式:是指值不会改变并且在编译过程就能得到计算结果的表达式。

    const int max_files = 20;	// max_files是常量表达式
    int i = 7;					// i不是常量表达式,值会改变
    const int sz = get_size();	// sz不是常量表达式,运行时才能得到sz具体值
    

处理类型

  1. 类型别名的两种定义方法:

    • 关键字typedef

      typedef double wages;	// wages是double的同义词
      typedef wages base, *p;	// base是double的同义词,p是double*的同义词
      

      关键字typedef作为声明语句中的基本数据类型的一部分出现

    • 别名声明using

      using SI = Sales_item;
      
  2. auto类型说明符:让编译器替我们分析表达式所属的类型

    auto item = val1+val2;	// item初始化为val1和val2相加的结果
    
  3. decltype类型指示符:选择并返回操作数的数据类型,编译器分析表达式并得到它的类型,却不实际计算表达式的值

    decltype(f()) sum = x;	// sum的类型就是函数f的返回类型
    

    decltype((variable))(双层括号)的结果永远是引用,而decltype(variable)结果只有当variable本身就是一个引用时才是引用。

posted @   Invinc-Z  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示