指针在函数的应用(C++)

 一、传递地址

    实参传递进函数体内后,生成的是实参的副本,在函数内改变副本的值并不影响实参。指针传递参数时,指针变量产生了副本,但副本与原变量指向的内存区域是同一个。改变指针副本指向的变量,就是改变原指针变量指向的变量。

调用自定义函数交换两个变量的值 

运行结果如下所示。 

 swap函数是自定义的重载函数,在main函数中调用该函数交换变量a和b的值。

 

 二、指向函数的指针

    指针变量可以指向一个函数。一个函数在编译时被分配给一个入口地址,这个函数入口地址就称为函数的指针。

     一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。返回指针值的函数简称为指针函数。

 定义指针函数的一般形式为:

类型名 *函数名(参数列表);

 使用指针函数进行平均值计算

运行结果如下所示。

 

三、从函数中返回指针 

定义一个返回指针类型的函数,形式如下:

int* fun(参数列表){...;   //执行过程return p; 
}

 p是一个指针变量,也可以是&value的地址值。当函数返回一个指针变量时,得到的是地址值。

指针做返回值 

运行结果如下所示。 

 值为NULL的指针地址为0,但不意味这块内存不可以使用。

 

四、指针数组 

    一维指针数组的定义形式为: 

类型名 *数组名[数组长度]

例如:int *p[4];

指针数组中的数组名也是一个指针变量,该指针变量为指向指针的指针。例如:

int *p[4];
int a=1;
*p[0]=&a;

p是一个指针数组,它的每个元素都是指针型数组(值为地址),指针数组p的第一个值是变量a的地址。指针数组中的元素可以使用指向指针的指针来引用。例如:

int *(*p);

 第一次进行*运算获取的是一个地址值,在进行一次指针*运算才可以获取具体值。

 

用指针数组中的各个元素分别指向若干个字符串 

运行结果如下所示。 

   在print函数中,数组名name代表该指针数组首元素的地址,name+i是name[i]的地址。设置一个制指针变量p,指向指针数组中的元素。 利用指针变量访问另一个变量就是间接访问。如果在一个指针变量中存放一个目标变量的地址,就是单级间址。指向指针的指针使用的是二级间距。

 

 五、结言

    感谢各位读者的阅读与参与,您的支持是我前进的动力!博主Ordinary会一直陪你复习C++语法,谢谢!

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

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

相关文章

哈希表的理解和实现

目录 1. 哈希的概念 (是什么) 2. 实现哈希的两种方式 (哈希函数) 2.1. 直接定址法 2.2. 除留余数法 2.2.1. 哈希冲突 3. 补充知识 3.1. 负载因子 3.2. 线性探测和二次探测 4. 闭散列实现哈希表 (开放定址法) 4.1. 开放定址法的实现框架 4.2. Xq::hash_table::insert…

vue2 配置运行环境

vue2 配置运行环境 在 vue2 项目中配置运行环境 在项目中新建 .env.development 文件 和 .env.production 文件 .env.development NODE_ENV development //指定当前环境模式 VUE_APP_MODE development VUE_APP_BASE_URL "/dev-api".env.production NODE_ENV &q…

万字长文破解 AI 图片生成算法-Stable diffusion (第一篇)

想象一下:你闭上眼睛,脑海中构思一个场景,用简短的语言描述出来,然后“啪”的一声,一张栩栩如生的图片就出现在你眼前。这不再是科幻小说里才有的情节,而是Stable Diffusion——一种前沿的AI图片生成算法—…

【电路笔记】-有源低通滤波器

有源低通滤波器 文章目录 有源低通滤波器1、概述2、有源低通滤波器2.1 一阶低通滤波器2.2 带放大功能的有源低通滤波器3、有源低通滤波器示例4、二阶低通有源滤波器通过将基本的 RC 低通滤波器电路与运算放大器相结合,我们可以创建一个具有放大功能的有源低通滤波器电路。 1、…

fastadmin对登录token的处理

fastadmin对token的操作 最近开发遇到一个场景,需要绕过验证获取登录,所以恶补了一下这个知识点,这个主要就是控制fastadmin的token的问题 代码分步实现 class Xcxuser extends Api {//关于鉴权protected $noNeedLogin [login,getopenid,…

1、sql server数据库进行sql注入

靶机取自:墨者sql server 1、判断数据库类型 抓包知sql server,所以注入语句跟MySQL有些区别 2、判断注入点 “http://219.153.49.228:42514/new_list.asp?id2 ”,当id2 and 11时显示正确,id2 and 12时页面报错。 3、确定列…

深度学习设计模式之抽象工厂模式

文章目录 前言一、介绍二、详细分析1.核心组成2.实现步骤3.代码示例4.优缺点优点缺点 5.使用场景 总结 前言 本文主要学习抽象工厂模式,抽象工厂模式创建的是对象家族,比如:苹果是一个产品,但是他不单单只生产手机,还…

回溯算法-组合问题-力扣第77题

什么是组合问题—— 举例: 有一个集合:{1,2,3,4} 现在要找出这个集合里面所有组合大小(组合长度,组合里面数据的个数)为2的组合 那么就有:总共6种组合 {1,2},{1,3},{1,4} {2,3}…

ubuntu在conda环境中使用 pip install -r requirements.txt但是没有安装在虚拟环境中

whereis pip pip listubuntu在conda环境中使用pip install lpips0.1.3 但是安装在了这里 Requirement already satisfied: lpips0.1.3 in /home/uriky/anaconda3/lib/python3.11/site-packages (0.1.3) 就会出现黄色波浪,未在虚拟环境中安装包 解决办法1&#xff1…

汇聚荣科技:如何有效为拼多多店铺引流?

在电商竞争激烈的今天,为拼多多店铺引流是每个店主必须面对的挑战。有效的引流策略不仅能增加店铺曝光度,还能提升转化率,促进销量增长。 一、社交媒体营销 利用微信、微博等社交平台进行推广,可以通过发布产品信息、用户评价和促…

GAME101-Lecture07学习

前言 今天主要讲shading(着色)。在讲着色前,要先讲图形中三角形出现遮挡问题的方法(深度缓存或缓冲)。 先采样再模糊错误:对信号的频谱进行翻译(在这期间会有频谱的混叠)&#xff…

Windows安装Django

1、下载Python程序包 Python程序包官网下载地址Download Python | Python.org,若下载最新版本,有最新版本则下载"Windows installer (64-bit)" 若是下载其他版本,可在下图位置找到相应的版本,然后点击Download.如下图所示: 打开后查看注意事项…

单位个人怎样向报社的报纸投稿?

作为一名单位的信息宣传员,我肩负着每月定期在媒体上投稿发表文章的重任。然而,在投稿的道路上,我经历了不少波折和挫折。 一开始,我天真地以为只要将稿件发送到报社的投稿邮箱,就能轻松完成任务。然而,现实却远比我想象的复杂。邮箱投稿的竞争异常激烈,编辑们会在众多稿件中挑…

XMind 头脑风暴/思维导图软件_V24.04.10291 PC高级版

一款风靡全球的头脑风暴和思维导图软件,为激发灵感和创意而生。在国内使用广泛,拥有强大的功能,包括思维管理,商务演示,与办公软件协同工作等功能。XMind中文版采用全球先进的Eclipse RCP软件架构,是集思维…

Qwen 开源标杆

Qwen的博客 在线体验Qwen开源版本、非常丝滑 不算量化、已经开源的Qwen1.5 版本有9个: 0.5B、1.8B、4B、7B、14B、32B、72B、110B、MoE-A2.7B 闭源已经发展到 Qwen-Max-0428、网页端从2.1升级到2.5 Qwen API详情 一些记录: 1、Qwen1.5 110B&#x…

我的dcd爬虫-Python

我自己写的dcd爬虫,这个网站比较简单。看了看别人的程序,觉得用起来挺别扭,就自己捣鼓了一天。弄出来了。 这个网站没有反爬,有一些是动态网页,有一些是静态。 首先,获取销量排行榜前300的车型。 import…

快速上手并行执行——《OceanBase 并行执行》 系列 7

并行执确实是一个涵盖多个层面的复杂主题,它需要投入一定的时间和精力来深入理解,才能充分掌握其功能。为了帮助初学者更快地掌握并行执行的技巧,我们提供了这份Quick Start,它适用于 OceanBase 3.1版本及以上的版本。虽然这里所…

浅谈内存泄漏

内存泄漏 概念 在JavaScript中,内存泄漏是指应用程序在不再需要使用某块内存时仍然保持对其的引用,导致内存不能被垃圾回收机制释放,最终导致内存占用过高,性能下降。 内存泄漏通常发生在以下情况: 全局变量&#…

macos安装mysql一直卡在安装成功那个页面选项的解决办法

问题描述: 我安装的是比较新的版本8.0.37,安装过程中一直卡在安装那个选项上,且页面提示安装成功了,但就是死活不往下面的配置选项那一步走。 解决办法: 1.首先清理掉之前的mysql sudo rm -rf /usr/local/mysql2.然…

win11快速安装mysql数据库系统

win11快速安装mysql数据库系统 1、下载 1.1 打开官网 1.2 向下滚动页面 1.3 进入下载选项 1.4 下载8.0.4 LTS 1.5 开始下载 1.6 下载中 2、解压 大家注意,此时解压后目录是没有data目录的。 3、数据库初始化 3.1 管理员身份打开CMD 开始菜单上,输入…