小白学c嘎嘎(第二天)入门基础下

news2024/11/13 9:00:13

温馨提醒:本篇文章起,文章内容排版将更新,层层深入

基础知识

回顾

引用的语法格式:类型& 引⽤别名 = 引⽤对象;

引用特性

1.  引⽤在定义时必须初始化
2.  ⼀个变量可以有多个引⽤
3.  ⼀旦引⽤⼀个实体,再不能引⽤其他实体

引用的使用

1. 引⽤传参和引⽤做返回值中减少拷⻉提⾼效率和改变引⽤对象时同时改变被引⽤对象

2. 引⽤传参跟指针传参功能类似,引⽤传参相对更⽅便⼀些。

3. 引⽤和指针在实践中相辅相成,功能有重叠性,但是各有特点,互相不可替代。

C++的引⽤跟其他语⾔的引⽤(如Java)是有很⼤的区别的,除了⽤法,最⼤的点,C++引⽤定义后不能改变指向,Java的引⽤可以改变指向

const引用

可以引⽤⼀个const对象,但是必须⽤const引⽤。const也可用于引用普通对象,引用过程中:访问权限只能缩小不能放大

指针与引用的关系

1. 语法概念上:引⽤不开空间,指针是存储⼀个变量地址,要开空间。

2. 引⽤在定义时必须初始化,指针可以初始化,也可以不初始化

3. 引⽤在初始化时引⽤⼀个对象后,就不能再引⽤其他对象,指针可以改变指向对象

4. 引⽤可以直接访问指向对象,指针需要解引⽤才是访问指向对象。

5. sizeof中含义不同,引⽤结果为 引⽤类型的⼤⼩ ,但指针始终是 地址空间所占字节个数
6. 指针很容易出现空指针和野指针的问题,引⽤很少出现(注意:引用也会出现和指针相同的问题)

 实操进阶

引用的特性

特性   1.引用初始化

特性   2.一个变量多个引用

引用的使用 

1.引⽤传参和引⽤做返回值

const引用

权限问题:放大

如上图可知,权限不能放大

权限缩小

由上图可知,权限可以缩小

一些其他使用的简单介绍

引用类型转换:

double d = 3.14;

const int& rd  = d;

引用传参

 void func(const int& val)

{

     语句;

}

内联函数

1. ⽤inline修饰的函数叫做内联函数,编译时C++编译器会在调⽤的地⽅展开内联函数,这样调⽤内联函数就需要建⽴栈帧了,就可以提⾼效率。

2. inline适⽤于频繁调⽤的短⼩函数,对于递归函数,代码相对多⼀些的函数,加上inline也会被编译器忽略。

3. 替代C的宏函数。

4. inline不建议声明和定义分离到两个⽂件,分离会导致链接错误。因为inline被展开,就没有函数地址,链接时会出现报错。

5. vs编译器 debug版本下⾯默认是不展开inline的,这样⽅便调试,debug版本想展开需要设置⼀下以下两个地⽅。

nullptr

C++11中引⼊nullptr,nullptr是⼀个特殊的关键字,nullptr是⼀种特殊类型的字⾯量,它可以转换

成任意其他类型的指针类型。使⽤nullptr定义空指针可以避免类型转换的问题,因为nullptr只能被

隐式地转换为指针类型,⽽不能被转换为整数类型。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

药监局瑞数后缀补环境教学

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! (联系看首页) 前言 之前用…

【python算法学习2】冒泡排序的写法

目的:学习冒泡排序的写法 1 定义 1.1百度百科 冒泡排序_百度百科在程序设计语言中,排序算法主要有冒泡排序、快速排序、选择排序以及计数排序等。冒泡排序(Bubble Sort)是最简单和最通用的排序方法,其基本思想是&…

EchoMimic 数字人项目:语音驱动图像说话项目

参考: https://github.com/BadToBest/EchoMimic 安装 下载模型 下载位置放到下面下载代码目录下, cd EchoMimic 下 export HF_ENDPOINT=https://hf-mirror.comhuggingface-cli download --resume-download --local-dir-use-symlinks False BadToBest/EchoMimic --local-d…

红酒的甜蜜秘密:如何搭配甜点?

在品味美食的旅程中,甜点与红酒的搭配总是能带来意想不到的惊喜。红酒的醇厚与甜点的细腻,在口中交织出美妙的旋律,让人陶醉不已。今天,就让我们一起探索红酒的甜蜜秘密,看看如何与甜点很好搭配,享受这一场…

PCL报ptr 释放错误(Memory.h文件中aligned_free(void *ptr)触发了一个断点)

今天跑PCL处理点云,上来一个下马威,关于内存的。反复检查代码以后还是报错.于是反复查看代码,并搜罗指针释放,都没有解决。一番操作才知道是设置配置问题。下面记录一下解决过程: (1)编译报错弹…

死灰复燃的 LockBit, “现身说法”计算机安全的重要性

LockBit 死灰复燃 2024年2月,一场全球性的名为 “Cronos 行动” 的执法行动夺取了对 LockBit 勒索组织基础设施的控制权并扰乱了其运营。 但是,就像希腊神话中的九头蛇一样,砍掉一个 LockBit 的头并不重要——它可以迅速再生成多个新的头。…

PCL:点云均匀采样滤波并保存ply文件(附完整源码)

均匀采样滤波基本上等同于体素滤波器,但是其不改变点的位置。下采样后,其点云分布基本均匀,但是其点云的准确度要好于体素滤波,因为没有移动点的位置。均匀采样算法:均匀采样通过构建指定半径的球体对点云进行下采样滤…

CV05_深度学习模块之间的缝合教学(1)

1.1 在哪里缝 测试文件?() 训练文件?() 模型文件?(√) 1.2 骨干网络与模块缝合 以Vision Transformer为例,模型文件里有很多类,我们只在最后…

【Pytorch】Conda环境下载慢换源/删源/恢复默认源

文章目录 背景临时换源永久换源打开conda配置condarc换源执行配置 命令行修改源添加源查看源 删源恢复默认源使用示范 背景 随着实验增多,需要分割创建环境的情况时有出现,在此情况下使用conda create --name xx python3.10 pytorch torchvision pytorc…

maven——(重要)手动创建,构建项目

创建项目 手动按照maven层级建好文件夹,并写上java,测试代码和pom文件 构建项目 在dos窗口中执行如下命令 compile编译 当前maven仓库中什么都没有。 在pom所在层级下,执行: mvn compile 就开始显示下面这些,…

整数的英语表示

题目链接 整数的英语表示 题目描述 注意点 0 < num < 2^31 - 1 解答思路 每三个数字形成一组&#xff08;高位不足的部分可以用0填充&#xff09;&#xff0c;使用StringBuilder拼接每组的数字和单位关键是三个数字的英语表示&#xff0c;包含个位、十位、百位&…

java入门-告别C进入java世界

目标 java体系 java开发环境 helloworld java语法 java体系 java开发环境 安装JDK JDK&#xff1a; Java Developement Kit 配置jdk 为什么需要配置 操作系统找不到此程序 操作系统PATH PATH C:\Users\49354>echo %PATH% C:\Program Files (x86)\VMware\VMware Works…

Java---SpringBoot详解一

人性本善亦本恶&#xff0c; 喜怒哀乐显真情。 寒冬暖夏皆有道&#xff0c; 善恶终归一念间。 善念慈悲天下广&#xff0c; 恶行自缚梦难安。 人心如镜自省照&#xff0c; 善恶分明照乾坤。 目录 一&#xff0c;入门程序 ①&#xff0c;创建springboot工程&#…

安泰电压放大器的选型方案是什么

电压放大器是一种常见的电路元件&#xff0c;广泛应用于各种电子设备中。在选择电压放大器的时候&#xff0c;我们需要考虑一系列因素&#xff0c;以确保选型方案能够满足实际需求。下面安泰电子将详细介绍电压放大器选型的主要考虑因素&#xff0c;包括应用需求、技术性能、成…

CSDN回顾与前行:我的创作纪念日——2048天的技术成长与感悟

CSDN回顾与前行&#xff1a;我的创作纪念日——2048天的技术成长与感悟 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 前言 时光荏苒&#xff0c;岁月如梭。转眼间&#xff0c;从我在CSDN上写下第一篇技术博客《2-6 带头结点的链式表操作…

《WebGIS快速开发教程》第7版发布

老规矩先看封面&#xff1a; 可以看到我们在封面上加了“classic”的字样&#xff0c;这意味着第7版将会是经典版本&#xff0c;或者说具有里程碑意义的一个版本。 拿到新书我们可以看到第7版的整体风格是以“业务场景”为核心&#xff0c;所有讲解的知识点和案例都是围绕着业…

一文清晰了解CSS——简单实例

首先一个小技巧&#xff1a; 一定要学会的vsCode格式化整理代码的快捷键&#xff0c;再也不用手动调格式了-腾讯云开发者社区-腾讯云 (tencent.com) CSS选择器用于选择要应用样式的HTML元素。常见的选择器包括&#xff1a; 类选择器&#xff1a;以.开头&#xff0c;用于选择具…

STM32CubeMX 下载及安装教程

1. 什么是 STM32CubeMX? STM32CubeMX 是一款图形化的配置工具&#xff0c;用于配置 STM32 系列微控制器的硬件外设、时钟系统以及中间件组件。它提供了一种可视化的方式来设置硬件功能&#xff0c;并生成相应的初始化代码以帮助开发者快速启动项目。 2. 主要功能 2.1 图形化…

ISO三体系认证:助力企业迈向卓越管理

在激烈的市场竞争中&#xff0c;企业不仅需要优质的产品和服务&#xff0c;还需要科学高效的管理体系。ISO三体系认证&#xff0c;包括ISO 9001质量管理体系认证、ISO 14001环境管理体系认证和ISO 45001职业健康与安全管理体系认证&#xff0c;为企业提供了系统化的管理框架。这…

docker-compose安装rocketmq

创建挂载目录 mkdir -p /home/docker/rocketmq/rocketmq_server/logs mkdir -p /home/docker/rocketmq/rocketmq_broker/logs mkdir -p /home/docker/rocketmq/rocketmq_broker/store mkdir -p /home/docker/rocketmq/rocketmq_broker/conf#创建配置文件broker.conf cd /home/…