首页 > 其他分享 >引用与指针

引用与指针

时间:2023-11-17 22:34:47浏览次数:19  
标签:10 变量 temp int 引用 指针

引用只是给已经存在的变量赋一个别名,通过此别名操作变量与通过变量本名操作是一样的效果。

为一个变量声明了引用后该变量就可通过两个名称来操作了。

例如:

int a = 10;
int &b = a;

这样之后通过a与b均可来操作存储10的这块地址空间。

而指针是一种变量类型,可被视为与int、char等相平行的一个概念,只不过其中存储的值代表着一个数据对象(data object)的地址。

引用的特点

引用的特点大致有以下四个:

  • 引用定义时必须初始化

    int &a;
    

    指针可以不初始化,这就是所谓的”野指针“

    int *a;
    
  • 引用不可更改
    也即不可:

    int a = 20;
    int b = 10;
    int &c = a;
    &c = b;
    

    而指针可以被修改。

  • 不能为常量值创建引用

  • 数组不能定义引用

引用的应用

引用的一个主要应用是将其用于传递参数来提高代码可读性并减少出错。

(据说是因为看不惯指针解引用时所需要的 *。

void swap ( int *x, int *y )
{
	int temp = *x;
	*x = *y;
	*y = temp;
}

用引用传参,则是:

void swap( int &x, int &y )
{
	int temp = x;
	x = y;
	y = temp
}

标签:10,变量,temp,int,引用,指针
From: https://www.cnblogs.com/3-141592653589/p/17839805.html

相关文章

  • C++ 指针学习笔记
    C++指针学习笔记引入指针是什么指针是一个变量,其值为另一个变量的地址。指针声明的一般形式为:type*ptr_name;type是指针的基类型,ptr_name是指针的名称,*用来指定一个变量是指针对于一个指针,需要明确四个方面的内容:指针的类型、指针所指向的类型、指针的值(指针所指向的......
  • Vue3 模板引用 ref 的实现原理
    什么是模板引用ref?有时候可以使用 ref attribute为子组件或HTML元素指定引用ID。<template><inputref="input"/></template><script>import{defineComponent,ref}from"vue";exportdefaultdefineComponent({setup(){......
  • ! (空引用忽略判断) 操作符 (C# reference)
    ref: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving主要是.Net6开始判断引用类型是否空,在项目文件中  PropertyGroup节点下  <Nullable>enable</Nullable,代表开启 ,在这个情况我想某个变量或者属性引用不要......
  • 指针网络原理分析
    不明确的地方,请看原文:指针网络一些难理解的关键词combinatorialproblem(组合问题):组合问题的目标是在一组有限集合中找出能够同时满足一组约束的一个满意解,在本文的语境下,是指对于给定的词元输入序列,找出能够满足一组约束的词元输出序列,作为满意解。token(词元)在本文中,词元是......
  • 《流畅的Python》 读书笔记 第8章_对象引用、可变性和垃圾回收
    第8章_对象引用、可变性和垃圾回收本章的主题是对象与对象名称之间的区别。名称不是对象,而是单独的东西name='wuxianfeng'#name是对象名称'wuxianfeng'是个str对象variablesarelabels,notboxes变量是标注,而不是盒子引用式变量的名称解释本章还会讨论标识......
  • go项目引用本地包
    如果服务器不能连接外网,只能通过调用本地包来调用modulegoProjectgo1.20require(github.com/stretchr/testifyv1.8.1//indirectgolang.org/x/sysv0.0.0-20220715151400-c0bba94af5f8//indirect)requiregithub.com/sirupsen/logrusv1.9.3replace(......
  • 函数名其实就是指向函数体的指针
    D选项会立即执行:因为setTimeout()会先判断第一个参数是否为「function」,如果不是,则会尝试将它当作字串处理。换句话说,会将checkState()执行后的回传值转为字符串,没有回传值,那就是undefined,于是变成window.setTimeout(”undefined",10000)于是10000ms到了就什么事都没发生。se......
  • typeof 主要用于检测基本数据类型,对于引用类型不大适用(因为所有引用类型的值都是 Obje
    下面哪些语句可以在JS里判断一个对象是否为String类型?AoStringObjectinstanceofStringBtypeofoStringObject=='string'CoStringObjectisStringD以上答案都不正确正确答案:AJS中值的类型分为原始值类型和对象类型。原始值类型包括number,string,boolean,nul......
  • HashMap集合的map.values()返回的Collection集合执行add方法报空指针问题
    一、方法1、privateCollection<String>setPermissionTenant(List<SysPermission>ls,inttenantId){//循环两次第一次设置ID和tenantId第二次设置pidMap<String,String>map=newHashMap<>();for(SysPermissionp:ls){......
  • 指针输入
    首先,用scanf对指针进行输入的时候,不要对指针加&然后,对指针进行输入时,最好先把指针指向一个明确的地址,比如#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intmain(){ intp; int*a=&p; scanf("%d",a); return0;}最好不要#include<bits/stdc++.......