首页 > 其他分享 >翻译|指针很复杂,或者说:字节里究竟有什么?

翻译|指针很复杂,或者说:字节里究竟有什么?

时间:2024-04-14 23:35:17浏览次数:25  
标签:或者说 字节 int C++ ptr 我们 指针

本文原作者:Ralf Jung,原文地址:https://www.ralfj.de/blog/2018/07/24/pointers-and-bytes.html

今天夏天,我再次完全使用Rust开发,并致力于(除其他事项外)为Rust/MIR开发一个“内存模型”。不过,在谈论我今年的想法之前,我终于要花点时间打破“指针很简单:他们只是一些整数”的神话了。这句话的两部分都是错误的,至少在Rust或C等具有不安全特性的语言中是这样的:指针既不简单,也不(只是)整数。

在我们能够讨论更复杂的部分之前,我想先给内存模型中的一个组成部分下定义:存储在内存中的数据是什么?它以字节为单位组织,字节是最小的可寻址单元,也是最小的可访问单元(至少在大多数平台上是这样)。但是,字节可能的值是什么呢?事实再次证明,“它只是一个8位的整数”并不能作为答案。

我希望当你读完这篇文章时,你会同意我的这两种说法。

标签:或者说,字节,int,C++,ptr,我们,指针
From: https://www.cnblogs.com/cinea/p/18134909

相关文章

  • 函数及指针
    c语言递归函数就是一个函数调用了函数本身要有一个明显结束的条件要有一个结束条件的趋势常用系统函数字符串函数标准库头文件<string.h>strlen(str)返回一个数组的长度(有元素的长度字符数组中的结束标识符不算)接收类型是size_tstrcpy(str,str1)将str1的字符串......
  • go切片和指针切片
    转载请注明出处:在Go语言中,切片(Slice)和指针的切片(即切片中每个元素都是指向某种数据类型的指针)是两个不同的概念,它们各自具有特定的用途和优势。切片(Slice)切片是对数组的一个连续片段的引用,它提供了对数组元素集合的抽象表示。切片底层数据结构都是数组,它包含三个关键部......
  • [Java SE] 经典问题:超出Java Long型(8字节/64位)的二进制比特流数据如何进行大数的数
    0问题描述经典问题:超出JavaLong型(8字节/64位)的二进制比特流数据如何进行大数的数值计算?近期工作上遇到了这个问题:需要将一个无符号数、且位长>=8字节(等于8字节时,首位bit为1,其他bit不全为0)的二进制字符串转为Java****对象(原始整数),进行整型运算、或浮点数运算浮点运算......
  • C语言10-指针(多级指针、空指针、野指针),自定义数据类型(枚举enum、结构体struct)
    第12章指针pointer12.6多级指针指向指针的指针称为多级指针eg:int*ptr1=&num; int**ptr2=&ptr1; int***ptr3=&ptr2;12.7空指针应用场景:1.暂时不确定指向的指针,可以在定义的时候先赋值为NULL2.有些指针函数,如果内部出现异常无法成功实现功能,可以返回NUL......
  • 二维字符串数组的传参时与指针互转时的问题
    二维数组如何传参二维字符串数组,转char**会导致的问题,以及编译报错要想得到正确的结果,需要按如下方式去写传参:#include<stdio.h>#include<string.h>//intchar_arr_copy(char**dest)//这样定义传参类型将导致编译报错,在低版本的编译器下或者没有报错但是得不到正确......
  • 字节面试:ThreadLocal内存泄漏,怎么破?什么是 ITL、TTL、FTL?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • C++ 引用和指针:内存地址、创建方法及应用解析
    C++引用和指针创建引用引用变量是对现有变量的“别名”,它是使用&运算符创建的:stringfood="Pizza";//食物变量string&meal=food;//对food的引用现在,我们可以使用变量名food或引用名meal来引用食物变量:cout<<food<<"\n";//输出Pizzacout<<mea......
  • C语言09-指针(指针数组、数组指针、字符指针),值传递和引用传递,指针和函数,注释写法
    第12章指针pointer12.3指针和数组①数组名可以把数组名当做是存储了首元素地址的常量。//arr的类型表示为int[5]intarr[5]={10,20,30,40,50};②指针数组指针数组(PointerArray)是一个数组,其中的每个元素都是指针。intnum1=10,num2=20,num3=30;//ptr_......
  • 嵌入式之指针、数组、函数篇(三)
    三、指针、数组、函数1.什么是指针?指针其实也是个变量,只不过这个变量里面存储的是内存地址。2.什么是指针的类型?举个例子:int*a;指针类型为int*char*c;指针类型为char*3.什么是指针所指向类型举个例子:int*a;指针指向类型为intchar*c;指针指向类型为char注......
  • C语言—指针变量作函参改错
    下面程序用于将6个数按输入时顺序的逆序进行排列。找出其中错误,并改正之。#include<stdio.h>voidSwap(int*x,int*y){    int*temp;    temp=x;    x=y;        y=temp;}voidSort(char*p,intm){  inti;  charchange,......