C++学习之值传递
c/c++中存在三种传值方式,在局部函数中,对这三种传值方式传入的参数进行修改,会得到不同的结果。具体见下例:
#include <stdlib.h>
#include <stdio.h>static int dummny = 10000;// 传值(传过来的是原始值的副本,因此下列修改并不会修改原始值)
void change_value(int val)
{printf("address of val: %p\n", &val); // 通过地址打印查看形参和原始实参的地址并不相同val = dummny; // 实际修改的是一个副本
}// 传指针 (只是把地址的值做了修改,而非修改指向的内容)
void change_ptr_0(int *val)
{printf("address of val: %p\n", &val);val = &dummny; // 此处的指针也是一个副本,该副本和实参指针指向的是同一块地址。// 此处仅仅是修改了副本指针的指向,没有修改指向内存的值.printf("in change_ptr_0: %d\n", *val);
}// 传指针 (首先解地址,然后修改指针指向的内容)
void change_ptr_1(int *val)
{*val = dummny; // 修改指针指向的内容printf("in change_ptr_1: %d\n", *val);
}// 传指针的地址
void change_ptr_2(int** val)
{printf("*val in chang e_ptr_add: %p\n", *val);static int target = 100;*val = ⌖printf("*val in change_ptr_add: %p\n", *val);printf("**val in change_ptr_add: %d\n", **val);
}// 传引用
void change_refer(int &val)
{val = 666;printf("in change_refer: %d\n", val);
}int main()
{int a = 10;printf("address of a: %p\n", &a);change_value(a); // 传入的只是一个副本,没有修改a的值printf("value of a: %d\n", a); // 10int *p = &a;change_ptr_0(p); // 传入指针, 没有修改p的指向,也没有修改a的值printf("after change_ptr_0: %d\n", *p);printf("value of a: %d\n", a);change_ptr_1(p); // 传入指针, 没有修改p的指向,但是修改了p指向内存的内容,也修改了a的值printf("after change_ptr_1: %d\n", *p);printf("value of a: %d\n", a);change_ptr_2(&p); // 传入指针的地址, 只是修改了p的指向,但是a的值不会有改变printf("poniter of p: %d\n", *p); printf("value of a: %d\n", a);change_refer(a);printf("value of a after change_refer: %d\n", a);return 0;
}相关文章:
C++学习之值传递
c/c中存在三种传值方式,在局部函数中,对这三种传值方式传入的参数进行修改,会得到不同的结果。具体见下例: #include <stdlib.h> #include <stdio.h>static int dummny 10000;// 传值(传过来的是原始值的副本&#…...
网络视频播放卡顿原因分析
一、问题描述 某项目通过拉摄像机rtsp流转rtmp/http-flv/ws-flv的方案,使用户可以在网页中观看摄像机的视频画面。在 观看视频时偶发出现卡顿现象。 二、卡顿现象分析和解决 此问题涉及的原因较多,所以得考虑各环节的问题可能性,并根据现场实…...
Android 相机库CameraView源码解析 (二) : 拍照
1. 前言 这段时间,在使用 natario1/CameraView 来实现带滤镜的预览、拍照、录像功能。 由于CameraView封装的比较到位,在项目前期,的确为我们节省了不少时间。 但随着项目持续深入,对于CameraView的使用进入深水区,逐…...
计算机缺少d3dx9_43.dll怎么办?5个方法快速修复d3dx9_43.dll文件
在计算机使用过程中,我们常常会遇到一些错误提示,其中之一就是“d3dx9_43.dll丢失”。这个问题可能会影响到我们的游戏体验或者软件运行。为了解决这个问题,我查阅了一些资料并尝试了多种方法。在这里,我想分享一下我对d3dx9_43.d…...
2023亚太杯数学建模C题思路分析 - 我国新能源电动汽车的发展趋势
1 赛题 问题C 我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料),将先进技术进行汽车动力控制和驱动相结 合的汽车。新能源汽车主要包括四种类型&#x…...
c语言新龟兔赛跑
以下是一个使用C语言编写的新的龟兔赛跑游戏: #include <stdio.h>#include <stdlib.h>#include <time.h>int main() { int distance, turtle_speed, rabbit_speed, turtle_time, rabbit_time, rabbit_lead; srand(time(NULL)); // 随机数种…...
Linux驱动开发——网络设备驱动(理论篇)
目录 一、前言 二、网络层次结构 三、网络设备驱动核心数据结构和函数 一、前言 网络设备驱动是 Linux 的第三大类驱动,也是我们学习的最后一类 Linux 驱动。这里我们首先简单学习一下网络协议层次结构,然后简单讨论 Linux 内核中网络实现的层次结构。…...
simulink仿真
1)系统问题 连续系统,离散系统(采样周期问题) 系统分析问题 2)求解器问题 变步长,定步长,步长时间与采样周期问题、 3)积分器问题 连续积分,离散积分问题ÿ…...
PC端页面进去先出现加载效果
自定义指令v-loading,只需要绑定Boolean即可 v-loading“loading” <el-table :data"list" border style"width: 100%" v-loading"loading"><el-table-column align"center" label"序号" width"5…...
磁盘清理在哪里?学会这4个方法,快速清理内存!
“在使用电脑的过程中,我可能经常会保存一些文件到电脑上,这也导致电脑经常出现内存不足的情况。我想问问磁盘清理在哪里呀?我应该如何打开呢?” 随着使用电脑的时间增长,用户可能经常会遇到磁盘空间不足的情况&#x…...
Error opening terminal: xterm.”的解决方法
主要是看下面这两个变量是否设置正确 $ echo $TERM $ echo $TERMINFO 通常TERM的默认值为xterm-265color, 要查看支持的term,可以ls -al /lib/terminfo/x/ 如果TERM是xterm-265color的话,TERMINFO设置为/usr/lib/terminfo make menuconfig时提示“Err…...
C#常见的设计模式-结构型模式
引言 设计模式是软件工程中用于解决常见问题的可复用解决方案。在C#编程中,常见的设计模式具有广泛的应用。本篇博客将重点介绍C#中常见的结构型设计模式,包括适配器模式、装饰器模式、代理模式、组合模式和享元模式。 目录 引言1. 适配器模式(Adapter …...
Redis分片备库切换操作
Redis分片备库切换操作 场景描述: 分片集群: 1.ipa:5001-ipa:5002 2.ipb:5001-ipb:5002 需将两个分片备库互置完成灾备 操作步骤 准备工作 主机密码:1qaz!QAZ 获取节点信息命令 /redispath/bin/redis-cli -a password -h ip -p port red…...
二叉树:leetcode1457. 二叉树中的伪回文路径
给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。 请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。 给定二叉树的节点数目…...
【【Linux下的Petallinux 以及其他的配置】】
Linux下的Petallinux 以及其他的配置 sudo apt-get install iproute2 gawk python3 python build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git-core diffstat chrpath socat xterm autoconf libtoo…...
13、深度学习之神经网络
深度学习是机器学习中重要的一个学科分支,它的特点就在于需要构建多层“深度”的神经网络。 人们在探索人工智能初期,就曾设想构建一个用数学方式来表达的模型,它可以模拟人的大脑,大脑我们都知道,有很多神经元,每个神经元之间通过突触链接。 神经网络的设计就是模仿了这…...
js的数组去重方法
目录 es6数组中对象去重 1. filter()用法 2. findIndex()用法 3. 去重 其他方法: 方法二:reduce()去重 1. reduce()用法 1.1 找出字符长度最长的数组成员。 1.2 扁平化二维数组 1.3 扁平化多维数组 三、总结方案: 使用Set…...
在 Next 14 的 appRouter 模式中接入 React-Redux
在 Next 14 的 appRouter 模式中接入 React-Redux 说明 Next.js 版本升级到 14 后,相比 13 版本是一个改动很大的大版本升级,很多概念或者使用方式 13 版本都有较大的区别,因此这里记录一些学习 14 版本的 Next.js 的心得体会或者问题。因为…...
aspose-words 跳过证书验证jar
优先用 aspose-words-19.3.jar ,不需要读取license.xml,导出后直接水印,jar包最好直接放在项目resource目录下直接引用,要不下载不下来 public static String doc2pdf(String fileName, String filePath) {try {String oldFile f…...
【开题报告】基于uniapp的瑜伽学习交流小程序的设计与实现
1.选题背景 瑜伽在现代社会中越来越受到人们的关注和喜爱。它不仅可以帮助人们塑造健美的身材,还能促进身心健康、提高生活质量。然而,由于瑜伽动作的复杂性和技巧性,很多初学者在学习过程中会遇到困难和挑战。 同时,由于工作和…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...
Pandas 可视化集成:数据科学家的高效绘图指南
为什么选择 Pandas 进行数据可视化? 在数据科学和分析领域,可视化是理解数据、发现模式和传达见解的关键步骤。Python 生态系统提供了多种可视化工具,如 Matplotlib、Seaborn、Plotly 等,但 Pandas 内置的可视化功能因其与数据结…...
JS的传统写法 vs 简写形式
一、条件判断与逻辑操作 三元运算符简化条件判断 // 传统写法 let result; if (someCondition) {result yes; } else {result no; }// 简写方式 const result someCondition ? yes : no;短路求值 // 传统写法 if (condition) {doSomething(); }// 简写方式 condition &…...
js 比较两个对象的值,不相等就push对象的key
在JavaScript中,比较两个对象(object)的值并找出不相等的key,可以通过多种方法实现。下面是一些常用的方法: 方法1:使用JSON.stringify 这种方法适用于简单的对象,其中对象的值是基本类型或可…...
Polarctf2025夏季赛 web java ez_check
第一次自己做出一个java,值得小小的记录,polar的java真得非常友好 反编译jar包,一眼就看到有个/deserialize 路由,接受base64的序列化数据,base64解码后 经过一次kmp检查,再由SafeObjectInputStream来反序列…...
