C++入门(3)

文章目录

  • C++入门
    • auto
    • 同一行中定义多个变量
    • auto不能推到的场景
    • 基于范围的for循环(C++11)
    • 10. 指针空值nullptr(C++11)

C++入门

auto

auto:C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。
注意:使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。

  1. auto与指针和引用结合起来使用
    用auto声明指针类型时,用auto和auto*没有任何区别,但用auto声明引用类型时则必须
    加&
    typeid(变量名).name() 可以查看变量类型

在这里插入图片描述

int main()
 {
 int x = 10;
 auto a = &x;
 auto* b = &x;
 auto& c = x;
 cout << typeid(a).name() << endl;
 cout << typeid(b).name() << endl;
 cout << typeid(c).name() << endl;
 *a = 20;
 *b = 30;
 c = 40;
 }

auto不能推到处数组的类型,因此创建数组变量不能使用auto让编译器推到处类型。

同一行中定义多个变量

1.同一行中定义多个变量右面必须是同以一类型

void TestAuto()
 {
 auto a = 1, b = 2; 
auto c = 3, d = 4.0;  // 该行代码会编译失败,因为c和d的初始化表达式类型不同
}

auto不能推到的场景

auto不能修饰形参,但auto可以作为函数的返回值

在这里插入图片描述

auto不能直接用来声明数组
在这里插入图片描述

基于范围的for循环(C++11)

9.1 范围for的语法

对于一个有范围的集合而言,由程序员来说明循环的范围是多余的,有时候还会容易犯错误。因此C++11中引入了基于范围的for循环。for循环后的括号由冒号“ :”分为两部分:第一部分是范围内用于迭代的变量,第二部分则表示被迭代的范围。
自动迭代 自动判断结束 范围for 底层迭代器
范围for 只能用于数组
注意:与普通循环类似,可以用continue来结束本次循环,也可以用break来跳出整个循环

int main()
{
	int array[] = {1,2,3,4,5,6};
 for(auto e : array)
 cout << e << " ";
 }

10. 指针空值nullptr(C++11)

  1. 在使用nullptr表示指针空值时,不需要包含头文件,因为nullptr是C++11作为新关键字引入的。
  2. 在C++11中,sizeof(nullptr) 与 sizeof((void*)0)所占的字节数相同。
  3. 为了提高代码的健壮性,在后续表示指针空值时建议最好使用nullptr。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/566919.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于ontape的备份与恢复实验

通过本文的备份恢复实验&#xff0c;我们可以深入了解ontape的使用方法和原理&#xff0c;包括如何进行完整备份、增量备份以及如何利用备份文件进行数据恢复。 1. 配置onconfig参数 通过修改onconfig参数文件&#xff0c;或使用onmode -wf命令&#xff0c;设置备份默认使用的…

pmp好考么?知道这些PMP一个多月拿下~

过来人想说的是PMP考试没那么难&#xff0c;学习也没那么复杂的&#xff0c;只要能好好学基础知识&#xff0c;积累实践案例&#xff0c;接着多做做题摸清题意套路&#xff0c;考试的时候就跟考科一似的。 尽管听上去描述的可能过于简单&#xff0c;但事实便是如是&#xff0c…

容器云平台运维的范围与架构设计新思潮

容器云平台运维的范围与架构设计 【导读】容器云平台有其独特的特点&#xff0c;不同于传统系统的运维。本文分享了作者对容器云平台运维范围和运维架构设计的思考与实践。 一、容器云平台运维范围 &#xff08;一&#xff09; 梳理要运维哪些内容 作为运维专家&#xff0c;…

被删除的照片和视频能找回吗?如何恢复手机删除的照片和视频?

手机里的照片和视频是我们记录生活的每一个瞬间&#xff0c;也是工作学习等场合经常用到的东西&#xff0c;一旦不慎丢失&#xff0c;将对我们造成很大损失。那么我们该如何恢复手机删除的照片和视频呢&#xff1f;通过掌握正确的恢复方法&#xff0c;能够最大程度地保护手机中…

【Leetcode笔记】501.二叉搜索树中的众数

文章目录 题目要求ACM 模式代码知识点 题目要求 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。 如果树中有不止一个众数&#xff0c;可以按 …

PDF文件去除文字水印

文章目录 0、背景1、准备工作2、查看是否是文字水印3、批量去除水印 0、背景 本文主题为去除PDF文件中的水印。源文件来自这里。防止丢失&#xff0c;我在这里做个记录&#xff0c;感谢原作者的付出&#xff0c;也欢迎大家关注原作者。 1、准备工作 下载Adobe Acrobat DC软件…

GUI测试首推!TestComplete 帮助有效缩短 40-50% 测试时长!

TestComplete 是一款自动化UI测试工具&#xff0c;这款工具目前在全球范围内被广泛应用于进行桌面、移动和Web应用的自动化测试。 TestComplete 集成了一种精心设计的自动化引擎&#xff0c;可以自动记录和回放用户的操作&#xff0c;方便用户进行UI&#xff08;用户界面&…

C++ 面向对象-封装

C 是一种多范式编程语言&#xff0c;它支持面向对象编程&#xff08;OOP&#xff09;范式。面向对象编程是一种程序设计思想&#xff0c;其中程序由对象组成&#xff0c;每个对象都是一个实例&#xff0c;具有数据和相关操作。在C中&#xff0c;实现面向对象编程主要通过类和对…

Vue3、 Vue2 Diff算法比较

Vue2 Diff算法 源码位置:src/core/vdom/patch.ts 源码所在函数:updateChildren() 源码讲解: 有新旧两个节点数组:oldCh和newCh; 有下面几个变量: oldStartIdx 初始值=0 oldStartVnode 初始值=oldCh[0] oldEndIdx 初始值=oldCh.length - 1 oldEndVnode 初始值=oldCh[ol…

如何在PostgreSQL中设置定期任务(如定时备份、数据分析等),并使用pgAgent或其他方式实现

文章目录 使用pgAgent实现定期任务步骤一&#xff1a;安装pgAgent步骤二&#xff1a;配置pgAgent步骤三&#xff1a;创建和调度任务示例代码&#xff1a; 使用操作系统的任务调度功能实现定期任务步骤一&#xff1a;编写脚本步骤二&#xff1a;设置cron任务示例代码&#xff1a…

ssh日志的独立与ssh远程日志

日志相关介绍&#xff1a; 1.系统日志&#xff1a;是记录了历史事件&#xff1a;包括时间地点人物事件等。日志级别&#xff1a;事件的关键性程度&#xff0c;Loglevel。 级号消息级别说明0EMERG紧急会导致主机系统不可用的的情况1ALERT警告必须马上采取措施解决的问题2CRIT严…

vue3实现全局事件总线

1、vue3中使用全局事件总线是变化最大的。在vue2中&#xff0c;我们在new Vue中在beforeCreate钩子函数中使用vue.prototype.$busthis来创建全局事件总线。vue3中我需要借助第三方库来完成创建全局事件总线。 2、安装依赖 npm i mitt -s3、封装event-bus.js文件 import mitt …

【白菜学习问问问系列】if __name__ == ‘__main__‘:怎么理解

可以让.py文件既可以当成一个模块调用&#xff0c;也可以单独的作为一个函数执行

【基础算法】双指针

1.移动零 移动零 思路&#xff1a; 利用双指针算法 cur&#xff1a;从左往右扫描数组&#xff0c;遍历数组 dest&#xff1a;处理好的区间包括dest dest初始化为-1&#xff0c;因为刚开始dest前应该没有非零元素。 即将非零元素移到dest之前即可 class Solution { public…

2016年新华三杯复赛实验试题

2016年新华三杯复赛实验试题 拓扑图 配置需求 考生根据以下配置需求在 HCL 中的设备上进行相关配置。 以太网接口配置 将 S1、S2 的以太网接口 G1/0/1 至 G1/0/16 的模式用命令 combo enable copper 激活为电口。 虚拟局域网 为了减少广播&#xff0c;需要规划并配置 VLA…

浏览器工作原理与实践--HTTPS:浏览器如何验证数字证书

你好&#xff0c;我是李兵。 在《HTTPS&#xff1a;让数据传输更安全》这篇文章中&#xff0c;我们聊了下面几个问题&#xff1a; HTTPS使用了对称和非对称的混合加密方式&#xff0c;这解决了数据传输安全的问题&#xff1b; HTTPS引入了中间机构CA&#xff0c;CA通过给服务器…

重生奇迹mu卷轴有什么用

问题一&#xff1a;重生奇迹mu里面的国王卷轴有什么用啊?创造宝石怎么用啊?国王卷不晓得~~宝石用来创造果实的。&#xff08;属性果实&#xff09; 问题二&#xff1a;请问重生奇迹mu里国王卷轴去哪弄&#xff1f;天空之城有&#xff0c;废墟1和2也有&#xff0c;遗址230也有…

付费SSL证书比免费SSL证书好在哪?

1. 身份证明更权威&#xff1a;付费证书可进行深度身份验证&#xff0c;让访客知道你的网站是真实、合法的公司运营&#xff0c;尤其高级证书能在浏览器地址栏显示公司名&#xff0c;让人一看就放心。 2. 适用范围广&#xff1a;有单域名、多域名、通配符等多种证书类型&#x…

基于SpringBoot的“幼儿园管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“幼儿园管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 个人信息界面图 缴费信息管理界…

重温javascript --(一)值的介绍

值的介绍 一、 值类型&#xff1a; 原始值 stack栈: 遵循后进先出原则&#xff0c;中主要存放一些基本类型的变量和对象的引用。如&#xff1a;Number String Boolean undefined null symbol BigInt 栈内不可修改值&#xff0c;内存满才会实现二次值覆盖 引用值 heap堆&#x…