【带头学C++】----- 三、指针章 ---- 3.11 补充重要指针知识(二,拓展基础知识)

1.指针与函数

1.1指针变量作为函数的参数

如果想在函数内部修改外部变量的值,可以将外部变量的地址传递给函数。

        在C/C++中,函数的参数传递方式有值传递(传递变量的副本)和引用传递(传递变量的地址)。如果希望函数内部修改外部变量的值,需要使用引用传递指针传递

test1:单向传递之 传值(此时无法修改外部变量,作用域不同)

1.不使用指针传递值,直接使用变量,我们发现其实最后是修改不了原始变量的值的。

test2:单向传递之 传地址 (指针传递)

此时我们将上述的变量num的地址传递给函数,最后发现我们修改num的值成功了。

   相同的道理,看下面的案例:

   指针传递:通过将变量的指针作为函数的参数进行传递,函数内部通过指针修改变量的值。如下所示:

void modifyValue(int* ptr) {
    *ptr = 20;  // 通过指针修改对应的外部变量
}

int main() {
    int value = 10;
    modifyValue(&value);  // 将变量的地址传递给函数
    // 现在value的值已经被修改为20
    return 0;
}

      引用传递:通过将变量的引用作为函数的参数进行传递,函数内部对参数的修改会影响到原始变量。如下所示:

void modifyValue(int& x) {
    x = 20;  // 修改参数对应的外部变量
}

int main() {
    int value = 10;
    modifyValue(value);  // 将变量的引用传递给函数
    // 现在value的值已经被修改为20
    return 0;
}

2.一维数组作为函数的参数

函数内部 想操作(读或写) 外部数组元素,将数组名 传递给函数

一维数组作为函数的形参会被优化成 指针变量

3.二维数组作为函数的参数

函数内部想操作函数外部的二维数组 需要将二维数组名 传递给函数

二维数组作为函数的形参会被优化成一维的数组指针

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

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

相关文章

2023 ChinaJoy后,Flat Ads成为游戏、社交出海的新选择

今年ChinaJoy 展会,共吸引了来自世界各地的 500 多家企业参展,预计吸引超过33万人次参观。ChinaJoy年年有,那今年对于行业来说有什么新变化呢? 01 出海热潮不减,新增客户明显提升 据不完全统计,展会期间前…

腾讯待办是不是停了?怎么用其它提醒软件查看导出的ics文件

腾讯待办是腾讯企业旗下的业务产品,其主要以微信小程序的形式使用,定位于待办事项和日程管理工具,支持罗列日程待办清单、设定定时提醒,帮助大家规划日常事务和进行时间管理,成功创建待办事项后可在对应的公众号和绑定…

python自动化测试(4)-使用第三方python库技术实现

1 概述 关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化接口测试性价比最高接口测试可以做自动化做好接口自动化,一定要有透过界面看到数据本质的能力 后面所谈到的 测试自动化 也将围绕着 接口自动化 来…

〔001〕虚幻 UE5 安装教程

✨ 目录 ▷ 下载启动程序▷ 注册个人账户▷ 选择引擎版本▷ 选择安装选项▷ 虚幻商城的使用▷ 每月免费插件▷ 安装插件▷ 下载启动程序 下载地址:https://www.unrealengine.com/zh-CN/download点击上面地址,下载 UE5 启动程序并安装▷ 注册个人账户 打开商城启动程序,登录个…

浅谈数据中心机房末端配电技术与产品监控选型-安科瑞黄安南

摘要 数据中心机房末端配电的可靠性、稳定性和可维护性直接关系到IT设备的安全供电。数据中心的末端配电技术主要有两种,一种采用列头柜加电缆配电,另一种是智能小母线配电。分别对两种配电技术进行了介绍和探讨,最后对两种配电方式进行了对…

Flink的API分层、架构与组件原理、并行度、任务执行计划

Flink的API分层 Apache Flink的API分为四个层次,每个层次都提供不同的抽象和功能,以满足不同场景下的数据处理需求。下面是这四个层次的具体介绍: CEP API:Flink API 最底层的抽象为有状态实时流处理。其抽象实现是Process Functi…

FreeRTOS学习笔记——SysTick中断

FreeRTOS学习笔记——SysTick中断_freertos tick中断-CSDN博客 FreeRTOS 之六 任务调度原理解析(Systick、PendSV、SVC)_freertos m0-CSDN博客 FreeRTOS中关于时间的管理分为两部分:一部分是任务的延时管理;前面叙述过一些,还有…

常见面试题-MySQL专栏(三)MVCC、BufferPool

typora-copy-images-to: imgs 了解 MVCC 吗? 答: MVCC(Multi-Version Concurrency Control) 是用来保证 MySQL 的事务隔离性的,对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性,避免了频…

React中组件之间如何通信?

一、是什么 我们将组件间通信可以拆分为两个词: 组件通信 回顾Vue系列的文章,组件是vue中最强大的功能之一,同样组件化是React的核心思想 相比vue,React的组件更加灵活和多样,按照不同的方式可以分成很多类型的组件…

OpenHarmony,奏响中国基础软件的“光辉岁月”

梦想需要多久的时间,多少血和泪,才能慢慢实现? 天地间任我展翅高飞,谁说那是天真的预言? 《光辉岁月》歌词中的这两个问题,恰好可以送给今天的中国基础软件事业。 曾几何时,我们认为中国基础软件…

AI智能雷达名片平台版小程序源码系统 带完整的搭建教程

大家好啊,今天源码小编来给大家分享一款AI智能雷达名片平台版小程序源码系统。人工智能技术的不断发展和普及,越来越多的企业开始应用AI技术来提高业务效率和提升用户体验。AI智能雷达名片平台版小程序源码系统就是利用人工智能技术,帮助企业…

深入OpenCV Android应用开发

前言 OpenCV是Open Source Computer Vision library(开源的计算机视觉库)的缩写。它是使用最广泛的计算机视觉库。Opencv是计算机视觉领域常用的操作函数的集合,其自身由C/C编写而成,同时也提供了对Python、Java以及任意JVM语言的封装。考虑到大部分And…

华为防火墙ipsec vpn nat穿越2种场景配置案例

第一种方法,出口有nat设备(这种方法最后电脑能上网,但不能和对端vpn通,配置检测没发现有问题,待以后再解决): 要实现分部电脑既能访问互联网又能和总部vpn连接 FW_A主要配置: acl …

为什么有的孩子玩着玩着就成了学霸?

毫不夸张地说,几乎所有的父母都想养出聪明宝宝,孩子上学之后能成为学霸就更省心了。 可“聪明”毕竟不能量化,不是说让孩子上几天课就能提升的。很多家长都在促进孩子大脑发育上使足了劲,可到头来却发现是在做“无用功”。 事实…

微服务-网关设计

文章目录 引言I 网关部署java启动jar包II 其他服务部署细节2.1 服务端api 版本号III 网关常规设置3.1 外部请求系统服务都需要通过网关访问3.2 第三方平台回调校验文件的配置IV 微服务日志跟踪4.1 打印线程ID4.2 封装线程池任务执行器4.3 将自身MDC中的数据复制给子线程4.4 微服…

设计模式之观察者(Observer)

事件处理模型 小朋友睡醒了就哭,饿 写程序模拟这个过程: v1:最简单的就是写程序一直观察着,什么时候哭了就进行处理 /*** 披着面向对象外衣的面向过程*/ public class Main1 {public static void main(String[] args) {boolean cry false…

Mabitys总结

一、ORM ORM(Object/Relation Mapping),中文名称:对象/关系 映射。是一种解决数据库发展和面向对象编程语言发展不匹配问题而出现的技术。 使用JDBC技术时,手动实现ORM映射: 使用ORM时,自动关系映射: &am…

动态表单获取某一项值

<template><div><el-form :model"form" :rules"rules" ref"form"><el-row v-for"(item,index) in form.list" :key"index"><el-col :span"6"><el-form-item label"用户名称…

URI参数在Netty WebSocket中的处理方式,你了解吗?

URI参数传递 概述起因方法1方法2pom 主页传送门&#xff1a;&#x1f4c0; 传送 概述 WebSocket 是 HTML5 中实现实时通信的一种技术&#xff0c;它建立在 HTTP 协议上&#xff0c;但与传统的 HTTP 请求不同&#xff0c;WebSocket 连接一旦建立&#xff0c;就可以在客户端和服…

选择 REST ,还是 GraphQL

在本文中&#xff0c;简单比较 REST 和 GraphQL 的优点和缺点&#xff0c;以便您可以决定哪种 API 架构最适合您的项目 当我们要创建数据驱动的 Web 或移动应用程序&#xff0c;需要开发后台 API&#xff0c;通过它可以从后端服务器来访问或操作数据。目前最流行的 API 架构是…