首页 > 其他分享 >Rust语言中级教程之指针

Rust语言中级教程之指针

时间:2023-05-05 15:23:25浏览次数:37  
标签:教程 bytes let 引用 println Rust 指针

Rust语言中级教程

一、指针

什么是指针

  • 指针是计算机引用无法立即直接访问的数据的一种方式(类比 书的目录)
  • 数据在物理内存(RAM)中是分散的存储着
  • 地址空间是检索系统
  • 指针就被编码为内存地址,使用 usize 类型的整数表示。
    • 一个地址就会指向地址空间中的某个地方
  • 地址空间的范围是 OS 和 CPU 提供的外观界面
    • 程序只知道有序的字节序列,不会考虑系统中实际 RAM 的数量

名词解释

  • 内存地址(地址),就是指代内存中单个字节的一个数
    • 内存地址是汇编语言提供的抽象
  • 指针(有时扩展称为原始指针),就是指向某种类型的一个内存地址
    • 指针是高级语言提供的抽象
  • 引用,就是指针。如果是动态大小的类型,就是指针和具有额外保证的一个整数
    • 引用是 Rust 提供的抽象

Rust 的引用

  • 引用始终引用的是有效数据
  • 引用与 usize 的倍数对齐
  • 引用可以为动态大小的类型提供上述保障

Rust 的引用 和 指针

static B: [u8; 10] = [99, 97, 114, 114, 121, 116, 111, 119, 101, 108];
static C: [u8; 11] = [116, 104, 97, 110, 107, 115, 102, 105, 115, 104, 0];

fn main() {
    let a = 42;
    let b = &B;
    let c = &C;

    println!("a: {}, b: {:p}, c: {:p}", a, b, c);
}

运行

point_demo on  master [?] is 

标签:教程,bytes,let,引用,println,Rust,指针
From: https://www.cnblogs.com/QiaoPengjun/p/17374211.html

相关文章

  • 非法学专业人士的《中华人民共和国治安管理处罚法》使用教程 All In One
    非法学专业人士的《中华人民共和国治安管理处罚法》使用教程AllInOne《中华人民共和国治安管理处罚条例》demos(......
  • 13.solidworks简单渲染教程
    1、打开solidworks,点击菜单栏的工具,然后选择插件,勾选PhotoView360两边的框2、右键特征工具栏,把渲染工具勾选3点击渲染工具,然后对想要更改的零件或者部位使用编辑外观和编辑布景更改外观颜色、材质、贴图以及背景 4、在绘图区域先摆好一个适合的角度,然后再添加相机......
  • XXL-JOB使用教程
    XXL-JOB使用教程1.下载项目https://gitee.com/xuxueli0323/xxl-job2.找到项目的官方文档xxl-job-master/doc/XXL-JOB官方文档.md3.建立数据库及表xxl-job-master/doc/db/tables_xxl_job.sql、4.修改xxl-job-admin中你的配置文件,启动admin服务5.按照文档对新项目引入依赖......
  • 原神3.2真端剧情服完整版架设教程
    想必在座的各位都玩过这款游戏吧、开放世界的玩法、折磨人的剧情、做不完的任务、话多且烦人的派蒙、没眼看的伤害、贵到爆的抽卡、打不动的深渊、树脂刷空也刷不到想要的圣遗物、打不动的BOSS、这怎么受得了呀!反正我是受不了。废话不多说、教程开始。准备工具:一台16H32G服务器(系......
  • Python爬虫scrapy框架教程
    Scrapy是一个Python爬虫框架,用于提取网站上的数据。以下是使用Scrapy构建爬虫的基本步骤:安装Scrapy:在终端中运行pipinstallscrapy创建一个新项目:在终端中运行scrapystartprojectprojectname创建一个爬虫:在项目文件夹中运行scrapygenspiderspidername http://website.co......
  • Python爬虫scrapy框架教程
    Scrapy是一个Python爬虫框架,用于提取网站上的数据。以下是使用Scrapy构建爬虫的基本步骤:安装Scrapy:在终端中运行pipinstallscrapy创建一个新项目:在终端中运行scrapystartprojectprojectname创建一个爬虫:在项目文件夹中运行scrapygenspiderspidername http://website.com编......
  • Opal 教程之二 SipIM 例子源码分析
    在互联网上.极少有关于Opal的中文教程.因此敝人决定把学习Opal的过程记录下来勉励自己.抑或给后来者留下一些入门的资料.最近感觉学习Opal已经慢慢摸出了门道.前几个星期.摸索在VS2005编译Opal花了我好多天的时间.把我的耐心都磨得差不多快要放弃研究Opal.作为初学者.学习的难度......
  • 一个完整的编译Ptlib.Opal 的教程
    想到以前你第一次到我家的情景.有点伤感.还是把它埋在内心深处吧好好的生活.努力把音视频的知识打扎实。接下来的时间就好好研究ptlib和Opal的知识。并把学习的过程记录下来1.从开源中国下载Ptlib最新的版本.ptlib-2.8.0-src.zip2.先单独编译Configure分别用Debug和Release的......
  • 图像识别入门教程,带你从零到一!
    图像识别是一门利用计算机技术来识别和处理图像中的信息的学科。图像识别的应用非常广泛,例如人脸识别、车牌识别、医学影像分析等。本教程将带你从零到一,了解图像识别的基本原理和方法,以及如何使用Python和TensorFlow等工具来实现图像识别的任务。本教程分为以下几个部分:-第一部......
  • Gradle安装配置教程
    一、安装前检查检查电脑上是否安装JDK,如果没有安装,请查看JDK安装教程:点击查看如果电脑上已经安装JDK,按Win+R键,输入cmd,然后点击确定输入java-version,点击回车,查看JDK安装信息,如果有下面提示信息,说明JDK安装成功二、Gradle下载打开官网下载界面:https://gradle.or......