二维数组_内存结构|学习笔记

简介: 快速学习二维数组_内存结构

发者学堂课程【C语言学习教程二维数组_内存结构】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/387/detail/4901


二维数组_内存结构


内容介绍:

一、二维组数的内存存储

二、验证二维数组内存的连续性

三、练习


一、二维组数的内存存储

二维数组的元素在内存存储上是连续的,我们可以通过如下程序来验证结果:

int arr[3][5],I,j;

   for(i=0; i<3; i++) {

      for(j=0; j<5; j++)

   print(“&ar[%d][%d]=%p arr[%d][%d]=%d\n”,i,j,&arr[i]

[j]i,j,arr[i][j]);

}

}

上述程序验证的方法:

通过%p 来打印变量地址


二、验证二维数组内存的连续性

1.若其内存地址按规律变化,则其是连续的。

2.了解%p

int a = 10;

printf ("%p\n",&a);

for (int i=0; i<3; i++) {  

   for (int j=0; j<4; j++) {

       printf("%p ",&array[i] [j]);

   }

printf("\n");

}

二维数组名字是整个二维数组内存起始地址,也是二维数组中第一个子数组内存起始地址

array[0]是第一个数组的首地址,而 array 是整个二维数组的首地址。


三、练习

1、矩阵加法:

定义两个大小相同的二维数组,并初始化。

分别输出两个二维数组的值,以及两个数组相同位置上的值相加以后的结果

答:首先编两个大小相同的二维数组

再把每一个数组元素的值都打印出来,并且打印出对应位置上的数之和

int arr1[2][3] ={1,2,3,4,5,6}

int arr2[2][3] = {10,20,30,40,50,60}

for (int i=0; i<2; i++) {

for (int j=0; j<3; j++) {

printf ("%d+%d=%d" ,arr1[i][j],arr2[i] [j],arr1[i]lj]+arr2[i] [j]);

 }

putchar(‘\n’);

}

相关文章
|
7月前
|
Arthas 存储 算法
深入理解JVM,包含字节码文件,内存结构,垃圾回收,类的声明周期,类加载器
JVM全称是Java Virtual Machine-Java虚拟机JVM作用:本质上是一个运行在计算机上的程序,职责是运行Java字节码文件,编译为机器码交由计算机运行类的生命周期概述:类的生命周期描述了一个类加载,使用,卸载的整个过类的生命周期阶段:类的声明周期主要分为五个阶段:加载->连接->初始化->使用->卸载,其中连接中分为三个小阶段验证->准备->解析类加载器的定义:JVM提供类加载器给Java程序去获取类和接口字节码数据类加载器的作用:类加载器接受字节码文件。
716 55
|
8月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
9月前
|
SQL 存储 缓存
【赵渝强老师】达梦数据库的内存结构
本文介绍了达梦数据库管理系统的内存结构,包括内存池、缓冲区、排序区和哈希区。内存池分为共享内存池和运行时内存池,能够提高内存申请与释放效率,并便于监控内存使用情况。缓冲区涵盖数据缓冲区、日志缓冲区、字典缓冲区和SQL缓冲区,用于优化数据读写和查询性能。排序区和哈希区分别提供排序和哈希连接所需的内存空间,通过合理配置参数可提升系统效率。文内附有具体配置示例及视频讲解,帮助用户深入理解达梦数据库的内存管理机制。
311 0
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
209 0
|
Java
JVM运行时数据区(内存结构)
1)虚拟机栈:每次调用方法都会在虚拟机栈中产生一个栈帧,每个栈帧中都有方法的参数、局部变量、方法出口等信息,方法执行完毕后释放栈帧 (2)本地方法栈:为native修饰的本地方法提供的空间,在HotSpot中与虚拟机合二为一 (3)程序计数器:保存指令执行的地址,方便线程切回后能继续执行代码
169 3
|
存储 算法 Java
聊聊jvm的内存结构, 以及各种结构的作用
【10月更文挑战第27天】JVM(Java虚拟机)的内存结构主要包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和运行时常量池。各部分协同工作,为Java程序提供高效稳定的内存管理和运行环境,确保程序的正常执行、数据存储和资源利用。
376 10
|
存储 安全 Java
JVM内存结构
这篇文章详细介绍了Java虚拟机(JVM)的内存结构,包括类的加载过程、类加载器的双亲委派机制、沙箱安全机制、程序计数器、Java栈、Java堆、本地方法和本地方法栈等关键组件及其作用。
JVM内存结构
|
存储 运维 Java
Java面试题:JVM的内存结构有哪些主要部分?请简述每个部分的作用
Java面试题:JVM的内存结构有哪些主要部分?请简述每个部分的作用
221 9
|
存储 编译器 C语言
【C++】学习笔记——内存管理
【C++】学习笔记——内存管理
153 15
|
存储 程序员 编译器
c++学习笔记08 内存分区、new和delete的用法
C++内存管理的学习笔记08,介绍了内存分区的概念,包括代码区、全局区、堆区和栈区,以及如何在堆区使用`new`和`delete`进行内存分配和释放。
179 0

热门文章

最新文章