当前位置: 首页 > article >正文

出乎意料C++

  1. 类型 decltype

int i = 4;

decltype (++i) v8 = i;

请问 : v8 的类型是什么?

错误:i 是 int, ++i 还是 int,  所以 v8 也是 int

正确:

前置递增++i 首先将变量 i 的值增加1,然后返回增加后的引用(即 int& 类型)。

因此,++i 的类型是 int&,即一个指向整数的引用。

由于 decltype 直接根据表达式来确定类型而不实际执行该表达式,所以 decltype (++i) 的类型就是 ++i 表达式的类型,也就是 int&

关键: 理解前置++(++i)的返回值是 i 的引用,后置++(i++)的返回值是和 i 相同的临时变量


http://www.kler.cn/a/545885.html

相关文章:

  • 深入理解JVM的运行时数据区
  • C++ ——构造函数
  • OpenCV机器学习(4)k-近邻算法(k-Nearest Neighbors, KNN)cv::ml::KNearest类
  • vue-plugin-hiprint (vue2
  • substring、substr、split用法区别
  • Hadoop 简介及其hdfs常用命令
  • Pycharm中通过Anaconda虚拟环境创建项目
  • CRMEB PHP多门店版v3.1.1源码全开源+PC端+Uniapp前端+搭建教程
  • latex二重闭合积分显示
  • A4988一款带转换器和过流保护的 DMOS 微步驱动器的使用方式
  • python中的深度学习框架TensorFlow 和 PyTorch 有什么区别?
  • C#+redis实现消息队列的发布订阅功能
  • 二十八、vue项目预览pdf文档示例
  • 深度学习机器学习:常用激活函数(activation function)详解
  • Nginx--日志(介绍、配置、日志轮转)
  • 2.SpringSecurity在mvc项目中的使用
  • 变频器MODBUS RTU通信
  • vue开发06:前端通过webpack配置代理处理跨域问题
  • FreeRTOS低功耗总结
  • Azure从0到1