c++的引用和指针

这篇具有很好参考价值的文章主要介绍了c++的引用和指针。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们要清楚的知道,使用指针和引用都可以的传入函数的main函数的变量在局部函数改变值时,main函数里面相应的变量也会改变值。但他俩的方式不同。

我们先来说指针,指针传入局部参数时,他会在创建个局部指针变量,然后把传入的地址赋值给局部的指针变量,然后修改值,从而使得原main函数的相应变量的值也被修改。

来看代码:

#include<bits/stdc++.h> 
using namespace std;
typedef int* Int;
void chushihua(Int a){
	cout<<"AAAA="<<a<<endl;
	a=(Int)malloc(sizeof(int));
	cout<<"初始化的a等于"<<a<<endl;
}
int main(){
    int* a;
    cout<<a<<endl;
    chushihua(a);
    cout<<"主函数的a的地址为"<<a<<endl;
	return 0;
}

结果:

c++的引用和指针,c++与数据结构系列,c++,开发语言,指针,引用

大家看到了,我们往函数里传入指针变量,它创建了一个新的指针变量,并把原指针的存储的地址0x1给了新创建的指针变量,我们修改新创建得指针变量存储的值时,旧指针存储的地址并未改变。

现在使用引用,他不会创建新的指针,而会一直使用旧的指针。

#include<bits/stdc++.h> 
using namespace std;
typedef int* Int;
void chushihua(Int &a){
	cout<<"AAAA="<<a<<endl;
	a=(Int)malloc(sizeof(int));
	cout<<"初始化的a等于"<<a<<endl;
}
int main(){
    int* a;
    cout<<a<<endl;
    chushihua(a);
    cout<<"主函数的a的地址为"<<a<<endl;
	return 0;
}

结果:

c++的引用和指针,c++与数据结构系列,c++,开发语言,指针,引用

我们可以看见一旦我们改变函数里的地址,main函数的指针所存的地址也会被改变文章来源地址https://www.toymoban.com/news/detail-702109.html

到了这里,关于c++的引用和指针的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++系列P2】引用——背刺指针的神秘刺客(精讲一篇过!)

    前言 大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎! 如标题所示,本章主要内容主要来侃侃“ 引用 ”这个刺客!如下就是大纲啦~ 引用,即 取别名 。它的最大特点是编译器 不会为引用变量而开辟空间 ,他们 共用同一块 空间。   1. 引用使用时必须要 初始化 。 2. 引用在初

    2024年02月10日
    浏览(68)
  • 【数据结构和算法初阶(C语言)】复杂链表(随机指针,随机链表的复制)题目详解+链表顺序表结尾

    目录  1.随机链表的复制 1.2题目描述  1.3题目分析 1.4解题: 2.顺序表和链表对比 2.1cpu高速缓存利用率 3.结语 一个长度为  n  的链表,每个节点包含一个额外增加的随机指针  random   该指针可以指向链表中的任何节点或空节点。        构造这个链表的  深拷贝 。 深拷贝

    2024年03月10日
    浏览(87)
  • 【数据结构与算法系列5】螺旋矩阵II (C++ & Python)

    给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 示例 2: 提示: 1 = n = 20 使用和二分法一样的思想,确定循环不变量,确定是左闭右开,还是左闭右闭合,本次使用的是左闭右开 C++ 实现: python 实现:

    2024年02月09日
    浏览(42)
  • C语言 / 数据结构中出现报错: 表达式必须包含算数或指针类型,但他具有类型 “XXX” 。 报错问题的解决 以及 方法

    前提介绍:L3 是一个结构体的地址,是一个指针  elem是该结构体内的一个结构体元素,elem是一个数组 算数类型是什么? 下该文章最下面 报错显示, 表达式必须包含 算数 或 指针类型 , 但elem是一个数组,它的类型明显不是指针类型, 那么elem 的类型本质上应该就是一个算

    2024年02月09日
    浏览(47)
  • 《数据结构、算法与应用C++语言描述》-列车车厢重排问题

    完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_10Train_carriages_rearrangement/ 一列货运列车有 n 节车厢,每节车厢要停靠在不同的车站。假设 n个车站从 1 到n 编号,而且货运列车按照从n到1的顺序经过车站。车厢的编号与它们要停靠的车站编号相同。为了便于从

    2024年04月10日
    浏览(67)
  • 【C++ | 数据结构】从哈希的概念 到封装C++STL中的unordered系列容器

    引入: 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( l o g 2 N log_2 N l o g 2 ​ N ),搜索的效率取决于搜索过程中元素的比较次数。 尽管平

    2024年01月22日
    浏览(43)
  • 数据结构(c++语言版) 邓俊辉 第五章:二叉树学习笔记

    5.1二叉树及其表示         树是由节点和边组成的。 1.有根树         树是由顶点(vertex)和边(edge)组成。树的每个顶点也叫节点(node)。 2.深度与层次         由树的连通性,每一节点与根都有一条路径相连:根据树的无环性,由根通往每个节点的路径必然唯一。  

    2024年02月13日
    浏览(46)
  • RK3588平台开发系列讲解(内存篇)Linux 伙伴系统数据结构

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android 12 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 系统中,用来管理物理内存页面的伙伴系统,以及负责分配比页更小的内存对象的 SLAB 分配器了。 本篇将介绍伙伴系统相关数据结构体。 Linux 也是使用分页机制管理物

    2024年02月05日
    浏览(113)
  • RK3588平台开发系列讲解(进程篇)Linux 进程的数据结构

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android 12 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍 Linux 如何表示进程。 Linux 系统下,把运行中的应用程序抽象成一个数据结构 task_struct ,一个应用程序所需要的各种资源,如内存、文件等都包含在 task_struct

    2024年02月07日
    浏览(43)
  • 软件开发中常用数据结构介绍:C语言队列

    工作之余来写写C语言相关知识,以免忘记。今天就来聊聊 C语言实现循环队列 ,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问,可底下评论! 如果觉得文章内容在工作学习中有帮助到你,麻烦 点赞收藏评论+关注 走一波!感谢各位的

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包