C++与C中,由函数形参test(int *a)引出的问题

文章参考来源:
1.c函数中形参为引用的情况;C++中a和&a的区别

描述:
最近在看循环单链表时,看到有篇文章中,链表初始化函数为图下,我在想,这个函数形参(类似 "int * & a"一样)到底是指针的引用还是?

typedef struct node{int data;struct node *next;
}Node,*LinkList;
//初始化(头插法)
bool InitList(LinkList &L)
{.......}

然后我打印地址看出地址相同,即“int *& a”为 指针的引用,同时,对于函数新参引用(值、址以及引用传递),只有地址传递引用会改变实参的值。C编译出错,C++可以编译,貌似这种写法只能在C++中使用么?见下文引申
在这里插入图片描述

int main()
{int x = 6;LinkList L;printf("函数外L地址为:%p\r\n",&L);InitList(L);InsertNode(L,x);travel(L);return 0;
}

引申:C++ 环境下,对指针的传递方式进行验证;如果要在C中实现,则要使用指针的指针

void foo(int* ptr);    //传值调用
int a;
int* pValue = &a;
foo(pValue);
其中,pValue的值不能被函数foo改变的,即pValue指向a
/*在C中实现*/
void foo(int** pptr)
{*ptr = NULL;
}
调用时要foo(&pValue)
#include <stdio.h>
void too (int * a)
{int b =1;a = &b;
}void too2 (int*& a)
{int p =7;a = &p;
//    a =NULL;
}int main()
{int a = 4;int *p = &a;printf("前p的值为%d\r\n",*p);too(p);printf("中p的值为%d\r\n",*p);too2(p);printf("后p的值为%d\r\n",*p);return 0;
}

在这里插入图片描述
补充:注:如果形参为指针(LinkList L)则InitList(LinkList L) 实际就传入的只有值,类似值传递,在该函数内只是新建了一个临时空间存储L的值,并进行操作,不会改变L实际的值,而**InitList(LinkList &L)**相当于引用,在操作时,改变的是地址的值;
在这里插入图片描述

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

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

相关文章

【C# WInForm】将TextBox从输入框设置为文本框

1.需求情形&#xff1a; textbox作为最常用的控件之一&#xff0c;通常是用来输入文本信息或者显示文字&#xff0c;但是如果要在界面中显示大段文本&#xff0c;一个带有边框、可选中的文本样式似乎不合适。像这样&#xff1a; 我需要的是这段文字不仅能跨行&#xff0c;而且…

Geoserver介绍与安装

Geoserver简介 概览 GeoServer是一个使用Java编写的&#xff0c;允许用户分享、编辑地理空间数据的开源软件。它在设计时就考虑了互操作性&#xff0c;其支持使用开放标准发布多数主流格式的空间数据。 作为一个社区驱动的项目&#xff0c;GeoServer由来自世界各地的个人和组…

记一次因敏感信息泄露而导致的越权+存储型XSS

1、寻找测试目标 可能各位师傅会有苦于不知道如何寻找测试目标的烦恼&#xff0c;这里我惯用的就是寻找可进站的思路。这个思路分为两种&#xff0c;一是弱口令进站测试&#xff0c;二是可注册进站测试。依照这个思路&#xff0c;我依旧是用鹰图进行了一波资产的搜集&#xff…

HTTP模块(二)

HTTP 设置 HTTP 响应报文 HTTP报文常见属性&#xff1a; const http require(http);const server http.createServer((request, response) > {// 设置请求状态码 2xx 4xx 5xxresponse.statusCode 200;// 设置请求描述 了解即可response.statusMessage hello// 指定响…

Vue3 study

Vue3 工程 创建 还是能像 vue2 一样通过 vue-cli 创建&#xff0c;即 vue create projectName 但是官方更推荐 vite 创建&#xff0c;即 npm create vuelatest&#xff0c;然后从项目名开始配置 总结&#xff1a;入口在 index.html&#xff0c;它会引入 main.ts&#xff0c;…

怎么把mac文件拷贝到移动硬盘 Mac拷贝之后Win电脑里看不到 mac拷贝windows文件时出错

Mac文件拷贝到移动硬盘怎么做&#xff1f;文件拷贝实际上是将文件写入磁盘中&#xff0c;因此&#xff0c;Mac系统需要具备写入磁盘的功能与权限&#xff0c;否则无法进行操作。如果出现Mac拷贝之后Win电脑里看不到的问题&#xff0c;很可能是写入功能受限导致的。本文会给大家…

昇思25天学习打卡营第3天 | 张量

张量是现代机器学习框架中的核心数据结构&#xff0c;理解张量的工作方式是深入掌握深度学习和神经网络的基础。 张量的基本概念 张量是一个多维数组&#xff0c;它是标量、向量和矩阵的高维推广。在MindSpore和其他深度学习框架中&#xff0c;张量是存储和操作数据的主要形式…

pdf2docx - pdf 提取内容转 docx

文章目录 一、关于 pdf2docx主要功能限制 二、安装1、 PyPI2、从remote安装3、从源码安装4、卸载 三、转化 PDF例 1: convert all pages例 2: 转换指定页面例 3: multi-Processing例 4: 转换加密的pdf 四、提取表格五、命令行交互1、按页面范围2、按页码3、Multi-Processing 六…

【Linux】通过分配虚拟内存的方式来解决因内存不够而导致部署的项目自动挂掉

多个 jar 包项目部署在同一台服务器上&#xff0c;当服务器配置低&#xff0c;内存不足时&#xff0c;有可能出现 nohup java -jar 启动的进程就莫名其妙挂掉的问题。 解决方式&#xff1a; 第一种方法&#xff1a;进行JVM调优可以改善这种情况&#xff0c;但是项目太多&…

【黑科技】:Laravel 项目性能提升 20 倍

令人激动的黑科技&#xff1a;Laravel 项目性能提升 20 倍 这个项目能够在无需修改任何代码且无需第三方扩展的前提下&#xff0c;将你的 Laravel 项目性能提高 20 倍。它仅依赖于 PHP 原生的 pcntl、posix、fiber 和 sockets。 项目灵感 起因是看到官方发布的 PHP 8.1 更新…

网闸(Network Gatekeeper或Security Gateway)

本心、输入输出、结果 文章目录 网闸(Network Gatekeeper或Security Gateway)前言网闸主要功能网闸工作原理网闸使用场景网闸网闸(Network Gatekeeper或Security Gateway) 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263 如果觉得本文对你有帮助…

【Stable Diffusion】(基础篇四)—— 模型

模型 本系列博客笔记主要参考B站nenly同学的视频教程&#xff0c;传送门&#xff1a;B站第一套系统的AI绘画课&#xff01;零基础学会Stable Diffusion&#xff0c;这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 本文主要讲解如何下载和使…

SQUID - 形状条件下的基于分子片段的3D分子生成等变模型 评测

SQUID 是一个形状条件下基于片段的3D分子生成模型&#xff0c;给一个3D参考分子&#xff0c;SQUID 可以根据参考分子的形状&#xff0c;基于片段库&#xff0c;生成与参考分子形状非常相似的分子。 SQUID 模型来自于 ICLR 2023 文章&#xff08;2022年10月6日提交&#xff09;&…

【Python】一文向您详细介绍 K-means 算法

【Python】一文向您详细介绍 K-means 算法 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff…

华盈生物-ESQ外泌体快速标记试剂盒

外泌体&#xff08;exosomes&#xff09;作为细胞间通信的重要载体&#xff0c;已经在癌症研究、神经退行性疾病研究和免疫学等领域引起了广泛关注。外泌体的研究通常需要对其进行标记和检测&#xff0c;但传统方法如超速离心不仅耗时且复杂&#xff0c;还可能导致外泌体损失和…

python将html转pdf

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

Webstorm-恢复默认UI布局

背景 在使用Webstorm的时候,有时候进行个性化设置,如字体、界面布局等. 但是设置后的效果不理想,想要重新设置回原来的模样,却找不到设置项. 这里提供一种解决方案,恢复默认设置,即恢复到最初刚下载好后的设置. 操作步骤 步骤一:打开setting 步骤二:搜索Restore Default,找到…

硅纪元视角 | 类器官智能OI技术实现将人脑植入机器人

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 堆内存申请(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

Vuex--全局共享数据

目录 一 是什么? 二 怎么用&#xff1f; 三 注意点 一 是什么? 在此之前&#xff0c;我们使用vue的数据全部放在每个组件的data区域里面&#xff0c;这里return里面存的都是这个组件要用到的数据&#xff0c;但是这里面的数据是局部的数据&#xff0c;也就是说这些数据是这…