引用&

【C转C++】超好用的函数引用& C转C++之超好用的函数引用& 我相信觉得部分人在刚学C语言的函数的时候,都被函数的参数传值规则给弄晕了,虽然C中可以通过指针实现对原变量进行操作,但与C++对比起来,C++的引用&就真的太好用了! 回顾C中的函数参数传值 之前写过一篇文章SWAP函数详解,这里copy过来给不懂或没看过朋友 #include <stdio.h> //w_swap即wrong swap 展示了两个常见的错误swap函数 void w_swap1( int a, int b ) { int 阅读详情

// 引用.cpp : Defines the entry point for the console application.
//

#include "StdAfx.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
// printf("Hello World!\n");
 int a[3] ={1,2,0};
// a[0]=0;a[1]=1;a[2]=2;
 int *p,*q;
 p = a;
 q = &a[2];
 cout<<a[q-p]<<endl;
 return 0;
}

 //不论a[2]值如何改变,结果都为a[2];值为0;

// printf("Hello World!\n");
 int a[6] ={1,2,10,4,5,6};
// a[0]=0;a[1]=1;a[2]=2;
 int *p,*q;
 p = a;
 q = &a[2];
 cout<<a[q-p]<<endl;
 return 0;
}

//值为10;

P =A ;和A[Q-P]  这儿还有点疑问。

 ////////////////////////////////

 int a[] = {1,2,3,4,5};
/* int i;
 for (i=0;i<=4;i++)
 {
  cout<<a<<endl;
 }
 */
 int *i ;
 i = a;
 for (int b=0;b<=4;b++)
 {
 
 cout<<*i<<endl;
 }
 return 0;
 }

输出值为1 1 1 1 1

//////////////////////////////////

c++ 引用 & 比如下文中recur递归函数中的引用参数pos,在多数的递归当中,需要让会变更的索引为引用,否则会出错,多说无益,这里建议大家自己试一下。形参不会改变原来的值,只会在函数调用的时候交换两个数的值,但不会改变内存里的值。但是引用参数就会改变。可以理解为为该变量取了一个别名。 阅读详情

相关推荐

Windows/Mac/Linux三系统保姆级教程:用llama.cpp将safetensors模型转gguf格式(附常见错误解决)

本文提供Windows、Mac和Linux系统下使用llama.cpp将safetensors模型转换为gguf格式的详细教程,涵盖环境配置、转换原理及常见错误解决方案。通过跨平台兼容性处理,帮助开发者高效完成模型格式转换,优化边缘计算性能。

weixin_29227425的博客 270

C++ FAQ Lite[8]--引用(更新)

[8] 引用(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [8]:[8.1] 什么是引用? [8.2] 给引用赋值意味着什么?

Nicrosoft的专栏 8005

从临床试验到互联网AB测试:边缘结构模型(MSM)如何解决‘时依性混杂’这个老大难问题

本文探讨边缘结构模型(MSM)如何解决时依性混杂问题,适用于临床试验和互联网AB测试。通过逆概率加权(IPTW)等方法,MSM能有效剥离混杂效应,准确评估长期干预效果。文章结合跨领域案例,详细解析MSM的核心原理、实施步骤及在推荐算法效果评估中的实战应用,帮助读者掌握这一先进因果推断工具。

weixin_28725949的博客 208

引用及其相关

强引用 软引用(SoftReference) 弱引用(WeakReference) 虚引用(PhantomReference)

gao_tianLiang的博客 445

ArcGIS新手必看:HWSD2土壤数据从下载到批量提取TIFF的完整流程

本文详细介绍了ArcGIS中HWSD2土壤数据的完整处理流程,从数据下载、预处理到批量提取TIFF文件。涵盖栅格属性表构建、属性数据连接及性能优化等关键步骤,帮助新手高效掌握HWSD2数据提取技术,提升地理信息数据处理效率。

ll5678的博客 1036

RoboMaster新手必看:用STM32 HAL库搞定大疆M3508电机正反转(附完整代码)

本文详细介绍了如何使用STM32 HAL库驱动大疆M3508电机实现正反转控制,包括硬件准备、PWM配置、电机校准及完整代码实现。特别针对RoboMaster新手常见问题提供了解决方案,如电机抖动、不转等故障排查,并分享了缓启动、DMA更新等进阶技巧,帮助开发者快速掌握电机控制核心技术。

weixin_42519985的博客 228

C++引用看这一篇就够了

C++引用看这一篇就够了 引用理解:为变量起了另一个名字,一般用&amp;符号表示。看做同一个变量。 int value = 10; int&amp; refval = value;//value的别名是refval。&amp;不是取地址运算符,只是起表示作用。 //定义引用并不额外占用内存,引用和原变量占用同一块内存。 //实际上不是同一块内存,编译器表象是同一块内存 //定义引用的时候必须初始化, refval = 3; cout &lt;&lt; value &lt;&l

u014339447的博客 1390

YOLOv8改进002:添加小目标检测头(小目标检测大量涨点)

YOLOv8 目标检测算法改进之添加小目标检测头,亲测在小目标检测的数据集上有大幅度的涨点效果(mAP直接涨了 0.04 左右)。

m0_46496775的博客 9878

引用常量之我见

我们先来看下下面的代码: int a = 10; const int &b = a; a += b; cout << a << endl; cout << b << endl;你觉得会输出什么呢?想一想。okay,答案是20和20! 我的理解是引用虽说是一个变量的别名,但是实际上还是一个指针常量,也就是这个指针是常量,不能重新赋值为其他地址,所以这也是为什么引

ancientmoondjay的博客 485

LVGL 源码分析大全

LVGL 是一款流行的免费和开源嵌入式图形库,为纯C的轻量级GUI框架,支持framebuffer直接渲染图层,因此LVGL能更容易为 MCU、MPU等显示设备开发漂亮的UI。可视化的 UI 编辑器官方上有推荐使用工具。当然,也可以选择 NXP(恩智浦半导体) 提供的工具。........................

Bigan(安)的博客 1万+

【100%通过率】华为OD机试真题 JavaScript【数字最低位排序】【最低位排序】

2023华为OD机试真题 JavaScript【数字最低位排序】【最低位排序】 给定一个非空数组(列表) 起元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素,相对位置保持不变 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位

MISAYAONE的博客 587

强软弱虚引用,只有体会过了,才能记住,看完不会找我

以前学习强软弱虚引用的时候,只是走马观花看看博客,并没有自己写代码去实践、去证明,导致每次看完后,过不了多久就忘了,后来下定决心,一定要自己敲敲代码,这样才能让印象更加深刻,古人云:纸上得来终觉浅,绝知此事要躬行。 Java中的四种引用 Java中有四种引用类型:强引用、软引用、弱引用、虚引用。 Java为什么要设计这四种引用 Java的内存分配和内存回收,都不需要程序员负责,都是由伟大的...

zgy956645239的博客 1355

【AI智能体】Spring AI Tool 从使用到实战详解

Spring AI Tool

congge 5866

&引用

文章目录一、leetcode一、C++&amp;引用 一、leetcode 在leetcode上做题的时候时常会发现这样的写法 class Solution { public: int searchInsert(vector&lt;int&gt;&amp; nums, int target) { } }; 其中&amp;的作用很是让人苦恼 一、C++&amp;引用 有这么一段代码 #include&lt;iostream&gt; using namespace std; int mai

czy04的博客 564

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = &quot;R. B. Palm&quot;, title = &quot;Prediction as a candidate for learning deep hierarchical models of data&quot;, year = &quot;2012&quot;,}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er&lt;0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free &quot;Bitdeli Badge&quot;)

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

*指针&引用

引用指针,以及函数参数上的使用

qq_63108111的博客 250

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex&trade;-M4F 内核的信息,请参见《Cortex&trade;-M4F 技术参考手册》。

C++指针的引用*&

指针的引用0 前言1 指针的指针和指针的引用2 例子 0 前言 今天刷leetcode的时候,看到了一个人在函数的形参中使用了这样的一个参数 TreeNode*&amp; prev,我当时就蒙了,这是什么操作,怎么之前从来没有见过。后来学习了一下,发现这是指针的引用还是很好理解的,在此做记录。 1 指针的指针和指针的引用 我们知道在C++中指针也是一种变量类型,其中存储的是地址。 我们知道C++中...

Lavi的专栏 5452

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

如何理解数据结构中的引用参数 &

C语言中的&是取变量逻辑地址的操作, 与变量本身所在的物理地址没有关系,它直接与变量的值相关,即使变量本身所在的物理地址改变,对&操作也没有影响,&操作取值不会改变. 而是取变量物理地址的操作, 即使变量本身所在的逻辑地址改变,对&操作也没有影响, &操作取值不会改变.但是 一旦物理地址中的数据改变,操作所得的数据也将随之改变. 这就像是在一栋楼房中找人,&是按入住人的名字找人,而*是按门牌号找

OhohOh 1万+

C/C++的&和*符号的底层汇编机制|引用、解引用、别名、取地址|&真的不占空间吗?为什么&一定要初始化?

(这里是参考《C++ Primer》)引用和指针都是复合类型。

Xilizai的博客 1628

指针(*)、取地址(&)、解引用(*)与引用(&)

指针(*)、取地址(&amp;)、解引用(*)与引用(&amp;) C++ 提供了两种指针运算符,一种是取地址运算符 &amp;,一种是间接寻址运算符 *。 指针是一个包含了另一个变量地址的变量,您可以把一个包含了另一个变量地址的变量说成是"指向"另一个变量。变量可以是任意的数据类型,包括对象、结构或者指针。 指针与取地址 例程: int main() { int num = 3; int* p = &amp;num; // 将变量num的地址取出来,存到指针p中 printf(

weixin_44966641的博客 4万+

C++中引用与地址运算符(&)

在C++中,&amp;这个符号有两个含义,一种含义是取某个变量或者对象的地址。这个地址是指内存地址,这个地址取到之后,可以赋给一个指针。C语言中没有取某个变量,没有取某个变量,没有取某个变量,在写stm32代码的时候,这样使用时错误的。 例如下面这样 int a=5; int *p=&amp;a; 这就表示,有一个变量为a,其值为5,然后有一个指针变量p,它保存了变量a的地址。 但...

qq_40787630的博客 1044

C++ & 和 *:指针与引用

本文详细介绍了C++中&amp;和*运算符的不同用法。&amp;既可以表示引用(作为变量别名,必须初始化且不能为空),也可以用于取地址(获取变量的内存位置)。*则用于定义指针类型或解引用(访问指针指向的值)。文章通过代码示例清晰展示了这些运算符的具体应用场景,并提供了一个简洁的对比表格,帮助读者区分它们在不同上下文中的含义。掌握这些概念对于理解C++的指针和引用机制至关重要。

aoleijue的博客 368

【考研】二、线性表——引用“&”

1.引用(“&”):对参数的。

m0_73935062的博客 184

详解C++中指针(*)、取地址(&)、解引用(*)与引用(&)的区别

对于c语言中指针的操作符有两个:&amp;和*。对于&amp;,就是“取地址”的意思。但对于*,翻译为“解引用”,字面意思不好理解,即使看了后面内容才知道不过是“取指针指向的地址的内容”,"*"的作用是引用指针指向的变量值,引用其实就是引用该变量的地址,“解”就是把该地址对应的东西解开,解出来,就像打开一个包裹一样,那就是该变量的值了,所以称为“解引用”。也就是说,解引用是返回内存地址中保存的值。...

yhc166188的博客 9874

php的引用操作符&

php的引用操作符& 2010年2月21日 阅读评论发表评论 说实在话在一年前战地写PHP代码的时候从来没有想过什么系统资源什么的,幸好PHP对于内存等其它的系统资源回收还是相当积极的。但是不管怎么样还是要注意的,毕竟资源是是宝贵的嘛。 那么我们开始今天的话题吧,说说PHP的引用操作符&,熟悉C的都知道C中有一个被称为指针的东西,指针就是指向内存地址的。这个&也是具有同样的功能的。

seelye的专栏 3214

九.C++ 对引用&的学习

本文详细介绍了C++中引用的基本概念与const引用的特性。引用作为变量的别名,必须初始化且不能更换对象,所有操作都作用于目标内存。通过代码示例展示了引用赋值对目标变量的影响。重点解析了const引用:它是只读的,可绑定const/non-const对象,能延长临时对象生命周期,常用于函数参数避免拷贝。文章比较了普通引用与const引用的区别,指出const引用在安全性方面的优势,并强调其不能用于移动语义。最后给出了最佳实践建议:优先用const引用传递大对象,注意返回引用的生命周期,合理选择值传递或引用传

wydaicls的博客 1214

【学习自用笔记】C++的引用&)和(C的&

C++引用

weixin_41578786的博客 441
上一篇: sizeof&指针
下一篇: 赋值&初始化
月球人
博客等级 码龄15年 6粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值