Arrays

注意机器级代码里面是没有数组这一概念的,而是将其视为字节的集合,结构也是如此。

然后C编译器的工作就是生成适当的代码来分配该内存,从而当你去引用结构或者数组时给你正确的值

Array Allocation

一个char数组一个字符是一个字节,双精度或长整数则是8个字节,指针也是八个字节,int是四个字节。

Array Access

注意c语言中没有边界检查,下标变成负数的时候,会给你一个未定义的值!

Ip...val+i会被缩放。计算出的值将是起始地址加上4倍的i,不管i是什么。

Array Accessing Example

rdi是基地址,rsi存放偏移的地址。

Array Loop Example

老师说了一个问题 C语言中指针和数组的真正区别是什么?

对下面的每个An

(1)是否能通过编译,在C语言中是合法语言吗

(2)其次,这可能会给我一个空指针引用吗?因为我正在引用一个指针,我们实际上没有为他指示的空间分配内存

(3)最后,如果在那个值前面用sizeof运算符,同时包括前面有*的情况

在C中声明数组的时候,既在分配空间,同时也正在创建一个允许在指针运算使用的数组名字。

但是声明指针的时候,分配的只是指针本身的空间,而没有给他指向的空间。

上图中,注意[]的优先级比*号高,还要注意的是上面使用了数组指针,具体的解释可以看<C语言中文网上面的解释>

Multidimensional (Nested) Arrays

上面这种排序方式是行优先

Nested Array Row Access

Multi-Level Array Example

Structures

Satisfying Alignment with Structures

Saving Space

将大的数据类型放在前面,这样的话更有效率。

Floating Point

floating point基础

FP Memory Referencing

CMU 15-213 Introduction to Computer Systems学习笔记(7) Machine-Level Programming-Data相关推荐

  1. Introduction to Computer Networking学习笔记(十五):Queue Model 包交换中的缓冲模型

    本章知识点比较零散,因此一篇文章进行总结,并且不具有连贯性,仅记录自己认为有价值的内容. 将较大的包拆分为小包进行传输,可以减小端对端延迟,原因如下图: 数据传输时,突发大量的数据包会增加延迟,简单周 ...

  2. 【机器学习笔记】可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning)

    [机器学习笔记]可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning) 目录 [机器学习笔记]可解释机器学习-学习笔记 Interpre ...

  3. CS269I:Incentives in Computer Science 学习笔记 Lecture 13:Introduction to Auctions(拍卖简介)

    Lecture 13 Introduction to Auctions(拍卖简介) 1 Preamble(前言) 为什么计算机科学家要关心拍卖?直到最近(甚至可能仍然),提到拍卖,我们脑海中联想到的图 ...

  4. CS269I:Incentives in Computer Science 学习笔记 Lecture 15 The VCG Mechanism(VCG机制)

    Lecture 15 The VCG Mechanism(VCG机制) 1 GSP vs VCG 作为本讲的开始,我们来证明上一讲中的一个重要结论: 回忆一下背景:有k个广告位,它们 的点击率排布为) ...

  5. CS269I:Incentives in Computer Science 学习笔记 Lecture 12 对称信息和声誉系统

    Lecture 12 Asymmetric Information and Reputation Systems(对称信息和声誉系统) 1 Preamble(前言) 之前的几讲,我们都在声誉系统的边缘 ...

  6. Coursera 机器学习 第9章(下) Recommender Systems 学习笔记

    9.5 Predicting Movie Ratings 9.5.1 Problem Formulation 推荐系统. 推荐系统的问题表述:电影推荐.根据用户对已看过电影的打分来推测用户对其未打分的 ...

  7. CS269I:Incentives in Computer Science 学习笔记 Lecture 17 评分规则和同辈预测(诚实预报和反馈激励)

    Lecture 17 Scoring Rules and Peer Prediction(Incentivizing Honest Forecasts and Feedback)(评分规则和同辈预测( ...

  8. POSEIDON: A New Hash Function for Zero-Knowledge Proof Systems 学习笔记

    1. 引言 Grassi等人2019年论文<POSEIDON: A New Hash Function for Zero-Knowledge Proof Systems>. 前序博客有: ...

  9. 概率导论(Introduction to Probability, 2E)学习笔记 Part Ⅰ

    笔记内容基于Introduction to Probablity, Second Edition 因笔者为初学者,故内容不会面面俱到 若有表述错误还望直接指出 --2022.1 样本空间与概率 本书的 ...

  10. Introduction to Materials Management 学习笔记--生产计划系统

    概述本章介绍了MPC(Manufacturing planning and control)系统.首先从总体上介绍一下,然后讲了生产计划的编制的一些细节(英文就是省事加个ing就能说明很多问题,本章在 ...

最新文章

  1. textlive在安装完winedt的配置问题
  2. 影响软件开发的两个关键性的问题
  3. matlab vdp1000,第四章 MATLAB的数学运算.ppt
  4. linux密码忘记grub登陆,Linux忘记密码后使用grub重置密码
  5. __attribute__编绎属性、关于__init、__initdata、__exit、__exitdata及类似的宏、关于initcall的一些宏定义、__setup宏的来源及使用...
  6. 获取到的数字证书如何配置在自己的Apache中?
  7. python不属于字符串的是_【python cookbook】python过滤字符串中不属于指定集合的字符...
  8. wps 插件_【追加功能】OFFICE插件管理工具重整后再上路,更好用易用。
  9. python删除文件_python删除指定类型(或非指定)的文件实例详解
  10. WebForm中 页面传参的总结
  11. 巴斯克维尔字体标本案例研究
  12. tomcat日志设置与详解
  13. 盘点:2022年10款比较火的项目管理软件
  14. 发卡网源码附企业发卡网源码搭建安装教程
  15. pmu2008终端服务器,PMU装置MMI子系统的研发
  16. 链接测试苹果手机软件,【苹果】苹果手机上如何使用免费观影软件?用TestFlight+某影视APP试试...
  17. RK987蓝牙键盘使用说明书分享
  18. Mac键盘部分数字键和字母键失灵,无法使用怎么办?
  19. 如何使用图片自定义和装饰您的QR码
  20. Unity 3D模型动画导出为帧序列

热门文章

  1. vim 插件之supertab
  2. 搭建代码审查系统Gerrit
  3. 在Pyramid中使用Mako模板以及默认和.html后缀关联
  4. 事务(进程 ID )与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品...
  5. python得语言编程模式_一图看懂编程语言迁移模式:终点站是Python、Go、JS!
  6. Nacos注册中心之服务实例心跳续约与实例过期下线源码解析
  7. Coding and Paper Letter(四十八)
  8. day08-linux权限(chmod chown umask chattr)
  9. mysql主主同步机制+keepalived实现MySQL高可用
  10. understanding OpenGL