开发者社区> 学堂小助手> 正文

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

简介: 快速学习二维数组_内存结构
+关注继续查看

发者学堂课程【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’);

}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JavaSE篇学习之路:(二)【变量&运算符】
在日常生活中,经常使用数据表示事物的某些特性。比如:年龄,身高,日期等等,这些数据都是具体的数值。那么在Java中像这样的数据如何描述呢?像这样数值确定的数据,Java中用常量来描述。
5 0
8. 为Lamb编写用户登录接口(带token)
上篇我们给Lamb引入了flask_sqlalchemy,接着我们就编写我们第一个接口---登录
3 0
掌握qsort函数的使用----好爽!!!
今天我来介绍一下如何深入掌握qsort函数:qsort是编译器函数库自带的快速排序函数。
5 0
centos docker简单搭建redis-cluster(3主3从)
centos docker简单搭建redis-cluster(3主3从)
3 0
剑指 Offer 03. 数组中重复的数字(C)
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
6 0
Java设计模式-观察者模式(订阅发布模式)
Java设计模式-观察者模式(订阅发布模式)
2 0
SQL Server 高可用性(七)复制
复制是一个开发范畴的技术,但是也可以像日志传送一样作为高可用技术的一个后备选项。
3 0
SQL Server 高可用性(八)负载平衡
高可用与负载平衡是两种不同的技术,却经常被混淆。
3 0
SpringBoot快速搭建、自动流程进阶、装配机制、功能扩展点详解
Spring Boot启动 Spring Boot是Spring旗下的一个子项目,其设计目的是简化Spring应用的初始搭建及开发过程,Spring Boot可以快速启动和运行你的Spring应用服务。 Spring Boot概述 Spring Boot本质上是基于Spring内核的一个快速开发框架,是“约定优先于配置”理念下的最佳实践,通过解析Spring Boot的启动过程,可以帮助我们逐渐了解它的工作机制和其背后整合Spring快速开发的实现原理。
4 0
1783
文章
0
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载