首页 > 编程语言 >C++ 数组的 auto 和 decltype

C++ 数组的 auto 和 decltype

时间:2024-09-21 14:34:15浏览次数:7  
标签:decltype auto C++ 数组 ia ia3 ia2

当使用数组作为一个 auto(参见 2.5.2节,第61页)变量的初始值时,推断得到的类型是指针而非数组:

int ia[]= {0,1,2,3,4,5,6,7,8,9}; // ia是一个含有10 个整数的数组
auto ia2(ia);                    // ia2 是一个整型指针,指向 ia 的第一个元素
ia2 = 42;                        // 错误:ia2是一个指针,不能用int值给指针赋值

当使用 decltype 关键字(参见 2.5.3 节,第 62 页)时上述转换不会发生,decltype(ia) 返回的类型是由10个整数构成的数组:

decltype(ia) ia3={0,1,2,3,4,5,6,7,8,9}; // ia3是一个含有10个整数的数组
ia3 = p;                               // 错误:不能用整型指针给数组赋值
ia3[4]= i;                             // 正确:把i的值赋给 ia3 的一个元素




《C++ Primer》 P105

标签:decltype,auto,C++,数组,ia,ia3,ia2
From: https://www.cnblogs.com/huvjie/p/18423997

相关文章

  • vector--C++
    文章目录一、vector1、vector的介绍及使用1.1、vector的介绍1.2、vector的使用1.3、vector的定义1.4、vectoriterator的使用1.5、vector空间增长问题1.6、vector增删查改1.7、vector迭代器失效问题(重点)1.8、指定位置元素的删除操作--erase2、注意:Linux下,g++编译器......
  • C++ 数组声明和初始化
    显式初始化数组元素如果指明了维度,那么初始值的总数量不应该超出指定的大小。如果维度比提供的初始值数量大,则用提供的初始值初始化靠前的元素,剩下的元素被初始化成默认值(参见3.3.1节,第88页):constunsigneds=3;intial[sz]={0,1,2};//含有3个元素的数组,元素值分......
  • C++ 知识要点:I/O 模型
    1.使用同步IO模型实现的Reactor模式的工作流程(以epoll_wait为例)在Reactor模式中,主线程(也称为事件循环或分发器)负责监听和分发事件,工作线程负责处理具体的业务逻辑。以下是使用epoll_wait实现Reactor模式的工作流程,详细描述了事件的处理过程:1.主线程往epoll......
  • c++第3课
    #include<bits/stdc++.h>usingnamespacestd;intmain(){ inta=0; a=a+10; a=a+1; cout<<a; return0;}这叫累加,注意,cout<<a;这里不要加括号,不然输出结果会这样子:a这是因为加括号只输出a,而不加括号则输出11。1.取出4123的十位想要取出4123的十位就要用到/和%,......
  • c++算法 枚举———百钱白鸡问题
    前言枚举,是一种最基本的算法思想,通过穷举枚举出所有的可能,再加以比较。枚举算法适用于问题规模较小、解空间可穷举的情况。它的优点是简单直观,不需要复杂的数学推导,易于实现。但是,对于问题规模较大的情况,枚举算法的时间复杂度可能会非常高,效率较低。接下来会介绍两个百钱白......
  • 【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略
    文章目录C++类与对象前言读者须知RVO与NRVO的启用条件如何确认优化是否启用?1.按值传递与拷贝省略1.1按值传递的概念1.2示例代码1.3按值传递的性能影响1.3.1完全不优化1.4不同编译器下的优化表现1.4.1VisualStudio2019普通优化1.4.2VisualStudio2022激进......
  • 【c++】动态内存管理
    ......
  • 大学C++程序设计课程开发指南——开发环境搭建
    前言由于某些大学程序设计课程仍然在使用VC6.0这一上古工具,不太适合学生与现代开发生产接轨,并且也有可能出现兼容问题等,故编写此文,仅供参考。使用VisualStudio在介绍VisualStudio(此后简称VS)前,先给大家介绍这一工具的发展。其前身正是VC6.0(全称VisualC++6.0,二十世纪末和......
  • C++学习笔记(27)
    十一、把字符串转换成整数有两个任务:1)为了支持把C风格的字符串转换成数字,C++提供了以下四个函数:intatoi(constchar*_String);//把C风格字符串转换为int整数。longatol(constchar*_String);//把C风格字符串转换为long整数。longlongatoll(constchar......
  • C++游戏
    宠粉福利!目录1.猜数字2.五子棋3.打怪4.跑酷5.打飞机6.扫雷1.猜数字#include<iostream>#include<cstdlib>#include<ctime>intmain(){std::srand(static_cast<unsignedint>(std::time(0)));//设置随机数种子inttarget=std::rand()%1000+......