对指针变量引用以及自定义类型引用的认识

news2024/11/24 12:49:04
#include <iostream>
using namespace std;
#include <iomanip>

typedef int G[10];			//自定义类型

void test(int* p);			//
void test_0(int &p);		//表明p是一个int型变量的别名 
void test_1(G &pG);			//表明pG是一个G类型变量的别名
void test_2(int* &p);		//表明p是一个int*型变量的别名


int main()
{
	//对指针变量引用的一点新认识
	int k = 9;
	int* p = &k;
	int* &pp = p;			//合法,只能用【指针变量】进行赋值
	//int* &ppp = &k;		//非法,不能用地址直接赋值
	//const int* &ppp = &k;	//非法,即使加了const属性

	//int* array[10];//指针数组
	int array[10] = { 3,5,2,7,90,6,54,3,2 };
	test(array);
	for (int i = 0; i < 10; i++)
	{
		cout << array[i] << " ";
	}
	cout << endl << endl;
//整型变量的引用
	int AB = 8;
	cout << "AB= " << AB << endl;
	test_0(AB);
	cout << "AB= "<< AB << endl;
//自定义类型
	G g;
	test_1(g);
	for (int i = 0; i < 10; i++)
	{
		cout << g[i] << " ";
	}
	cout << endl << endl;
//指针变量的引用(只能用指针变量进行赋值)
	int* P = array;
	test_2(P);
	for (int i = 0; i < 10; i++)
	{
		cout << array[i] << " ";
	}


	return 0;
}

void test(int* p)
{

	for (int i = 0; i < 10; i++)
		p[i] = i * 100;
}
void test_0(int &p)
{
	p = 4;
}
void test_1(G &pG)
{
	for (int i = 0; i < 10; i++)
	{
		pG[i] = i + 2;
	}
}
void test_2(int* &p)
{
	for (int i = 0; i < 10; i++)
		p[i] = i + 10;
}

在这里插入图片描述


对自定义类型的引用的再认识

在这里插入图片描述

#include <stdio.h>
#include <iostream>
using namespace std;
typedef int Array[10];
typedef int A;

void test(int b[])
{
	for (int i = 0; i < 10; i++)
		b[i] = i+2;
}
//自定义类型:把它看作和int类型一样操作即可!
//虽然本质是数组,但是别忘了它是自定义类型!
//虽然Array a ,b,,, 本质是数组,但是由于是自定义类型,所以把它们和int相对等即可!
//另外,调试也值得一看!
void test_1(Array &b)			//Array &b = a;		b是a的别名
{
	for (int i = 0; i < 10; i++)
		b[i] = i + 2;
}
void test_11(Array b)	
{
	for (int i = 0; i < 10; i++)
		b[i] = i+1;
}
void hh(A c)
{
	c = 88;
}
int main()
{
	//int a[10];
	//for (int i = 0; i < 10; i++)
	//	a[i] = i+1;
	//test(a);
	//for (int i = 0; i < 10; i++)
	//	printf("%d ", a[i]);
	//printf("\n");

	Array a;
	for (int i = 0; i < 10; i++)
		a[i] = i;
	for (int i = 0; i < 10; i++)
		printf("%d ", a[i]);
	printf("\n");
	test_1(a);
	//test_11(a);
	for (int i = 0; i < 10; i++)
		printf("%d ", a[i]);



	return 0;
}

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

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

相关文章

PMP备考心得分享

备考PMP考试是一段充满挑战和成长的旅程。参加某机构的PMP培训课程&#xff0c;有国内PMP考培资深讲师的授课&#xff0c;以及班主任的周期监督管理&#xff0c;无疑是我备考成功的重要支撑。在这个过程中&#xff0c;我积累了许多宝贵的经验和心得&#xff0c;现在将它们分享给…

GPT-5出世,需5万张H100!英伟达GPU陷短缺风暴

随着人工智能技术的不断突破&#xff0c;自然语言处理领域也掀起了一波又一波的革命。从GPT-3.5的惊艳登场&#xff0c;到紧随其后的GPT-4的惊世震人&#xff0c;人们仿佛置身于科幻电影中&#xff0c;亲历了一场场技术的奇迹。然而&#xff0c;这场奇迹背后却逐渐显现出一道不…

解决问题:ModuleNotFoundError: No module named ‘mmcv._ext‘,及安装mmcv-full的详细教程

解决问题**ModuleNotFoundError: No module named ‘mmcv._ext’**之前得先搞懂mmcv和mmcv-full的关系。 mmcv 和 mmcv-full 都是针对 PyTorch 的计算机视觉基础库,两者的主要区别是: mmcv 包含了 mmcv 的核心组件,例如运行器、回调函数、可视化工具等,打包体积较小。mmcv-fu…

K8S系列文章之 自动化运维利器 Fabric

Fabric 主要用在应用部署与系统管理等任务的自动化&#xff0c;简单轻量级&#xff0c;提供有丰富的 SSH 扩展接口。在 Fabric 1.x 版本中&#xff0c;它混杂了本地及远程两类功能&#xff1b;但自 Fabric 2.x 版本起&#xff0c;它分离出了独立的 Invoke 库&#xff0c;来处理…

bigemap国土管理行业应用

由于国营企业单位&#xff0c;管理土地&#xff0c;必须要有这样的软件套图 客户之前用的谷歌&#xff0c;后来不能访问了&#xff0c;通过其他途径搜索到我们 客户使用软件一般都用于套坐标以及空间规划图&#xff0c;方便于项目选址和居民建房报建在卫星图上找到用地范围&am…

远程调试MySQL内核

1 vscode 需要安装remote-ssh插件 安装成功后&#xff0c;登录&#xff1a; 默认远程服务器的登录 ssh rootip注意&#xff0c;Linux需要设置root远程登录&#xff1b; 2 安装debug扩展 C\C extemsion Pack C\Cgdb debugger beyond用于进程attach 3 设置Attach进程 {// …

MyBatis源码剖析之Mapper代理方式细节

MyBatis是一个流行的Java持久层框架&#xff0c;它提供了多种方式来执行数据库操作&#xff0c;其中之一就是通过Mapper代理方式。通过Mapper代理方式&#xff0c;开发者可以编写接口&#xff0c;然后MyBatis会动态地生成接口的实现类&#xff0c;从而避免了繁琐的SQL映射配置。…

前端主题切换方案——CSS变量

前言 主题切换是前端开发中老生常谈的问题&#xff0c;本文将介绍主流的前端主题切换实现方案——CSS变量 CSS变量 简介 编写CSS样式时&#xff0c;为了避免代码冗余&#xff0c;降低维护成本&#xff0c;一些CSS预编译工具&#xff08;Sass/Less/Stylus&#xff09;等都支…

Java基础入门篇——Java注释、关键字和标识符(二)

目录 一、注释 1.1注释介绍 1.2单行注释 1.3多行注释 1.4文档注释 1.5javadoc注释标签语法 二、关键字 三、字面量 3.1什么是标识符&#xff1f; 3.2标识符命名规则 四、总结 一、注释 在Java中&#xff0c;注释是用来向代码添加解释、说明和文档信息的文本。Java…

网工这行最大的内卷,就是养了一批“HCIE”

下午好&#xff0c;我是老杨。 这段时间&#xff0c;我个人工作上的事儿挺多&#xff0c;一直在处理。 手底下的一个重要项目组&#xff0c;想招个新人&#xff0c;面了几批都不满意&#xff0c;难搞。 前两天刚定下人选&#xff0c;现下和你聊上几句。 上回说过&#xff0…

Killing LeetCode [82] 删除排序链表中的重复元素 II

Description 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 Intro Ref Link&#xff1a;https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/ Difficulty&#xff1a;Medium T…

怎么在树莓派环境上搭建web网站,并发布到外网可访问,今天教给大家

怎么在树莓派上搭建web网站&#xff0c;并发布到外网可访问&#xff1f; 文章目录 怎么在树莓派上搭建web网站&#xff0c;并发布到外网可访问&#xff1f;概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS测试 web 站点安装静态样例站点 将web站点发布到公网安装 Cpolarcpo…

OpenStack监控工具

OpenStack是一个开源的云计算管理平台项目&#xff0c;是一系列软件开源项目的组合。由NASA和Rackspace合作研发并发起&#xff0c;以Apache许可证&#xff08;Apache软件基金会发布的一个自由软件许可证&#xff09;授权。 OpenStack为私有云和公有云提供可扩展的弹性的云计算…

mac电脑三维建模 Rhino 7中文 7.32

Rhino 7特别功能介绍 • 不受约束的自由形式 3D 建模工具&#xff0c;如仅在成本高出 20 到 50 倍的产品中发现的工具。为您可以想象的任何形状建模。 • 设计、原型、工程、分析和制造从飞机到珠宝的任何东西所需的准确性。 • 与您的所有其他设计、绘图、CAM、工程、分析、…

git使用(常见用法)

一.下载git git官方下载跳转 安装简单,有手就行 二. git的简单使用 1. 连接远程仓库 #初始化 git init #配置账户 git config --global user.name “输入你的用户名” git config --global user.email “输入你的邮箱” git config --list #--q退出 #配置验证邮箱 ssh-key…

vue2 引用swiper

参考引用 &#xff1a; vue使用swiper实现轮播图一页多张图片效果_swiper多张图片排列的轮播_空空的博客-CSDN博客 vue2 使用swiper_vue2使用swiper__NIXIAKF的博客-CSDN博客 常见的属性&#xff1a;Swiper 中常见的属性以及方法_swiper-wrapper_超勇的.的博客-CSDN博客 1、…

8月16日起!亚马逊新商品上架需更新产品类型的274个属性!

亚马逊美国站发布公告称为了帮助买家更轻松地搜索产品&#xff0c;改善买家的购买决策提高卖家的销量&#xff0c;8月16日起受影响的200种产品类型的274个属性在上架前需更新属性&#xff0c;以下是公告内容&#xff1a; 自2023年8月16日起&#xff0c;200种产品类型的274个属…

想在金融界拥有一席之地吗—社科院杜兰大学金融管理硕士助你圆梦

追求高学历是为了什么&#xff1f;一纸证书吗&#xff1f;显然并非如此&#xff0c;只有读过研的人才有话语权。在上升一个平台后&#xff0c;你必然会发现&#xff0c;更高学历得到的不止是一张文凭。而是更大的平台、更广阔的视野、更包容的环境&#xff0c;更多样的文化。最…

Clion开发Stm32之存储模块(W25Q64)驱动编写

前言 涵盖之前文章: Clion开发STM32之HAL库SPI封装(基础库) W25Q64驱动 头文件 #ifndef F1XX_TEMPLATE_MODULE_W25Q64_H #define F1XX_TEMPLATE_MODULE_W25Q64_H#include "sys_core.h" /* Private typedef ---------------------------------------------------…

【0805作业】Linux中 AB终端通过两根有名管道进行通信聊天(半双工)(全双工)

作业一&#xff1a;打开两个终端&#xff0c;要求实现AB进程对话【两根管道】 打开两个终端&#xff0c;要求实现AB进程对话 A进程先发送一句话给B进程&#xff0c;B进程接收后打印B进程再回复一句话给A进程&#xff0c;A进程接收后打印重复1.2步骤&#xff0c;当收到quit后&am…