二维数组初始化及首地址

二维数组的首地址、首行地址和元素地址 首先定义一个简单的三行四列的数组: int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };  其中: a代表第0行的首地址,其步长为一行的长度(16B), 所以a+1代表第1行的首地址,比a大16;a+2代表第2行的首地址,比a大32  printf("a=%d  a+1=%d  a+2=%d\n", a, a+1,a+2); &a[... 阅读详情
#include<stdio.h>
#include<stdlib.h>

void main4()
{
	int num[3][4];		//二维数组相当于 元素为一维数组的一维数组
	int number = 1;
	for (int i = 0; i < 12; i++)
	{
		num[i / 4][i % 4] = number++;			//赋值之后再自增
		printf("%d\n", num[i / 4][i % 4]);		//3 * 4 = 12  则取num[3][4]第二个坐标为标准 
	}
	system("pause");
}

void main3()
{
	//int num[3][4] = { 1 };		//定义时直接初始化,则未初始化的自动初始化为0
	//num[3][4] = { { 1 }, { 5, 6 }, { 9 } };		//未直接初始化则需要指定单个元素进行初始化
													//因为写明下标即指定了某个元素

	//错误的赋值方式
	//num[0][] = { 1, 2, 3, 4 };
	//int number[3][] = { 1, 2, 3 };

	//num[0][1] = 1;

	int num[3][4] = { { 1 }, { 5, 6 }, { 9 } };
	
	for (int i = 0; i < 12; i++)
	{														//因为二维数组相当于元素为一维数组的一维数组,
		printf("%d, %x\n", num[i / 4][i % 4], num + i);		//所以num对应的是第一个一维数组(相当于第一个元素)的首地址,
		if (i % 4 == 3)										//所以加1则相当于加一个元素(一维数组)大小,为4 * 4 = 16
			putchar('\n');
	}
		//1, e7fd24
		//0, e7fd34
		//0, e7fd44
		//0, e7fd54

		//5, e7fd64
		//6, e7fd74
		//0, e7fd84
		//0, e7fd94

		//9, e7fda4
		//0, e7fdb4
		//0, e7fdc4
		//0, e7fdd4

	printf("===============\n");
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			printf("%d, %x\n", num[i][j], num[i] + j);	//num[i]相当于第i + 1个一维数组,也是其第一个元素的地址(也是一维数组首地址)
		}												//所以加 j 即其第j + 1个元素的首地址
		putchar('\n');									//与 &num[i][j] 等价
	}

	//== == == == == == == =
	//	1, e7fd24
	//	0, e7fd28
	//	0, e7fd2c
	//	0, e7fd30

	//	5, e7fd34
	//	6, e7fd38
	//	0, e7fd3c
	//	0, e7fd40

	//	9, e7fd44
	//	0, e7fd48
	//	0, e7fd4c
	//	0, e7fd50

	//int number[2][] = { { 1 }, { 3 } };
		//列数不可以省略,行数可以省略

	//int number[][2] = { { 1 }, { 3 } };
		//等价于 number[2][2]
	//printf("%d\n", number[1][1]);

	system("pause");
}

麒麟v10系统安装 阅读详情

相关推荐

二维数组元素的地址

  一维数组元素的地址大家都比较容易理解,但对于二维数组,就很容易搞混了.今天我又被这个问题给弄糊涂了,翻了翻老谭的书本,对这个问题有了更深的认识.   首先给出一个二维数组a,它的定义为:     int a[3][4] = {{1,3,5,7}, {9,11,13,15}, {17,19,21,23}};   a数组包含3个行元素,a[0],a[1],a[2].而每个行元素又是一...

weixin_30398227的博客 2765

IEEE Access投稿全流程:从LaTeX模板到Overleaf实战(附避坑指南)

本文详细解析了向IEEE Access期刊投稿的完整流程,重点介绍了如何使用LaTeX模板在Overleaf平台上高效撰写和格式化论文。内容涵盖模板选择、作者信息填写、公式图表排版、参考文献管理(BibTeX)以及投稿前的最终检查清单,旨在帮助研究者,尤其是LaTeX新手,规避常见技术问题,顺利完成符合期刊严格要求的稿件提交。

open4的博客 576

浅谈二维数组元素的地址

  一维数组元素的地址大家都比较容易理解,但对于二维数组,就很容易搞混了.今天我又被这个问题给弄糊涂了,翻了翻老谭的书本,对这个问题有了更深的认识.

Stephen___Qin的博客 2668

AU混响终极指南:从‘干声’到‘空间感’,用总音轨和发送技巧打造专业人声

本文详细介绍了如何在Adobe Audition(AU)中使用混响效果器,通过总音轨和发送技巧将‘干声’转化为具有专业‘空间感’的人声。从混响基础原理到总线架构设置,再到精细控制和自动化调整,全面解析了提升音频质量的实用技巧,适用于音乐制作、播客和内容创作。

weixin_30512089的博客 332

Windows Docker Desktop部署MaxKB详细教程

MaxKB(Max Knowledge Base)是一款基于大语言模型(LLM)和检索增强生成(RAG)技术的开源知识库问答系统,旨在帮助企业、教育机构及研究组织高效管理知识并提供智能问答服务。

猿小白的博客 1372

Java学习笔记1

2020-9-15 Java学习笔记 1.关于Java的输入输出 Java的输入要使用到一个包 import java.util.Scanner; 输入 Scanner sc = new Scanner(System.in); //根据待输入的数据类型来定义这个新的变量接受输入数据 int dayMoney=sc.nextInt(); 输出 System.out.println("输入需要打印的子变量用+拼接") Java数组 1.关于Java数组的定义 int []array int array[]

qq_45031555的博客 1104

手把手教你学Simulink--使用Simulink进行双冗余电机驱动系统的故障切换验证

提高系统可靠性:当一个电机或其驱动器出现故障时,另一个可以立即接管,避免系统停机。增强安全性:对于一些关键任务的应用场景(如飞行控制),确保即使在硬件故障情况下也能维持基本操作能力。简化维护:允许在不影响系统正常工作的情况下进行维护和更换故障部件。确定可能发生的故障类型(如过流、欠压、温度过高),以及每种故障对应的条件。通过上述步骤,我们简要介绍了如何基于Simulink实现双冗余电机驱动系统的故障切换验证。

MHD0815的博客 439

C语言二维数组的初始化

这三个一维数组都有 4 个元素,比如,一维数组 a[0] 的元素为 a[0][0]、a[0][1]、a[0][2]、a[0][3]。如此数组定义3列,那么每相邻的三个值为一行,依此类推,直到行的个数达到所定义的列数为止。例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。1)在对二维数组定义时,行的值可忽略,但列的值不能忽略,如。其中,花括号的对数代表行数,方括号中的值的个数代表列数。是对每一行的第一列元素赋值,未赋值的元素的值为 0。

工业废气 8673

Coverity本地增量C/C++代码检查(Linux)操作简介

Coverity 是一款精确的综合静态分析与应用安全测试 (SAST) 平台,它可以在编写代码时发现关键的缺陷和安全缺陷,防止它们变成安全漏洞、故障或维护缺陷。

1483

数仓解惑:数据仓库常见建模方法与大数据领域建模实例综述

为什么需要数据建模? 为什么要进行数据仓库建模? 随着DT时代互联网、智能设备等信息技术的发展,数据开始井喷式的增长,如何讲这些数据进行有序、有结构地分类组织存储是我们面临的一个挑战。 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置,而不是乱糟糟的 大数据的数仓建模是通过建模的方法更好的组织、存储数据,以便在 性能、成本、效率和数据质量之间找到最佳平衡点。一般主要从下面四点考虑 ...

云祁QI 5850

二维数组及指针

二维数组本质也是一个数组,我们说行和列是为了让大家更好理解,其实二维数组也是连续存储的,所以遍历时也可利用循环算法来实现遍历,与一维数组不同的是二维数组要在行循环的基础上把每一行的所有元素都遍历,因此要用到嵌套循环来实现。这里可以看到,两个程序的结果是一样的,但是这两个本质上不是一个事情,第一行仅仅是得到了行的首地址,第二个则是的到了行的全部地址,在讲解指针时给大家说过,C语言里用首地址来代表全部地址,所以这两个输出的结果才是一样的。完全初始化:形式1:一维摸样,形式2:{}行方式。我们用调试器观察一下。

m0_68484018的博客 5902

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C语言取二维数组中元素的地址

C语言中取二维数组中元素的地址类似于取一维数组中元素的地址 首先建立一个3*3的二维数组 include&amp;amp;lt;stdio.h&amp;amp;gt; main() { double shuzu[3][3] = { {1,2,3}, {4,5,6}, {7,8,9} }; } 取这个数组的首地址: double * shoudizhi=shuzu; /* 等价于 double sh...

qq_33560272的博客 9643

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C++ 二维数组

1、二维数组 二维数组就是在一维数组上,多加一个维度。 二维数组定义方式: 1)、数据类型 数组名[ 行数 ] [列数]; 2)、数据类型 数组名[行数][列数] = {{数据1,数据2,数据3},{数据4,数据5}}; 3)、数据类型 数组名[ 行数 ][列数] ={数据1,数据2,数据3,数据4}; 4)、数据类型 数组名[ ] [列数] = {数据1,数据2,数据3,数据4}; 建议:以上4种定义方式,利用低二种更直观,提高代码的可读性; 示例: #include <iostream>

钢铁男儿 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C++数组-二维数组

二维数组就是在一维数组上,多加一个维度 1 二维数组定义方式 1.数据类型 数组名[ 行数 ][ 列数 ]; 2.数据类型 数组名[ 行数 ][ 列数 ] = {{数据1,数据2} , {数据3, 数据4} }; 3.数据类型 数组名[ 行数 ][ 列数 ] = { 数据1, 数据2, 数据3, 数据4 }; 4.数据类型 数组名[ ][ 列数 ] = { 数据1, 数据2, 数据3, 数据4 } 建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性 #include<io

KevinJune的博客 2083

二维数组的运用

二维数组:二维数组可以看作是以行为主的一维数组。例如:a[3][3]={{1,2,3},{4,5,6}.{7,8,9}}可以看做是,这个数组是由三个元素构成,每个元素又包括三个数的一维数组。二维数组的初始化#include <stdio.h>int main(){int p[3][3]={{1,2,3},{4,5,6},{7,8,9}};int i=0,j=0;f...

weixin_34308389的博客 168

C++ 二维数组+应用考试成绩统计

1.数据类型数组名[行数][列数]; 2.数据类型数组名[行数][列数].{{数据1,数据2},{数据3,数据4}}; int a[2][3]={{1,2,3},{4,5,6}}; 3.数据类型数组名[ 行数][列数] . {数据1,数据2,数据3,数据4}; 4.数据类型数组名[ ][ 列数] . {数据1,数据2,数据3,数据4); 定义数组时列数是不可以省去的 以两行三列的数组为例 二维数组名于一维数组名的作用一致 1.查看所占用的内存空间的大小 int a[2][3]; sizeof(a);//该

一季南凉的博客 1093

C++二维数组定义方式和数组名

C++二维数组定义方式 目录 C++二维数组定义方式 1、定义方式 2、代码演示 1、定义方式 数据类型 数组名[行数][列数]; 数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}}; 数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4}; 数据类型 数组名[][列数]={数据1,数据2,数据3,数据4}; 2、代码演示 #include<iostream> using namespace std; int main() {

ISP行业的忠实粉丝 1078

C语言基础——二维数组

/索引从0开始赋值方式//按行进行赋值//可以省略行数for(;;for(;;//错误,只有最左边的维度可以省略。

ka1es的博客 321

用fill给二维数组赋值

#用fill函数给一维赋值: int num[maxn]; fill(num,num+maxn,-1); 或者fill(num,num+n,-1);指定数组长度赋值 #用fill给二维数组赋值: int num[maxn][maxn]; fill(num[0],num[0]+maxn*maxn,-1); //值得注意的是,给二维数组赋值时,首地址必须写num[0]。 ...

点典的博客 4378

二维数组的地址与指针相关问题

版权声明:本文为优快云博主「Lemon_jay」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/Lemon_jay/article/details/83007589 前几天在作题的时候发现有个关于指针和二维数组的问题困扰了我 题目是: 利用指针输出二维数组的元素。 #include<stdio....

white1148的博客 312

c++笔记总结

数组就是一个集合,里面存放了相同类型的数据元素 特点1:数组中的每个元素都是相同的数据类型 特点2:数组是由连续的内存位置组成的 2.一维数组 定义初始化 三种定义方式: 数据类型 数组名[数组长度]; 数据类型 数组名[数组长度] = {值1,值2…}; 数据类型 数组[ ] ={值1,值2…}; #include <iostream> using namespace std; int main() { /* 1. 数据类型 数组名[数组长

m0_73884648的博客 259

C++入门学习--数组---二维数组

1.数据类型 数组名[行数][列数];2.数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};3.数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};4.数据类型 数组名[ ][列数]={数据1,数据2,数据3,数据4};//第一种i < 2;j++) {//第二种{1,2,3},{4,5,6}i < 2;j++) {//第三种i < 2;i++) {

qq1742358848的博客 638

那年我不懂她---二维数组

不会二维数组,你就看吧,看完都不吱声

cxyzhao的博客 1692

【C语言】一维数组和二维数组

一维数组及二维数组

hei我在这 2372

C语言基础-数组

C语言基础-数组 一、数组是什么 数组是同种类型的数据连续存储 二、数组定义 类型说明符 数组名 [常量表达式]; 例: int a[5]; // 定义了一个整型数组,数组名为a 这个数组当中有5个元素,也就是能存储5个整型的值 1、定义数组的同时初始化数组 例: int a[5]={1,2,3,4,5}; 2.如果在定义数组的同时初始化数组元素的值,这个下标5可以省略 例: int a[]={1,2,3,4,5}; 二、数组的使用 1.单个元素的引用 例: #include “stdio.h” voi

阳光小麦 1006
上一篇: 数组实现斐波那契数列
下一篇: 如何建立社交圈
KnowBug
博客等级 码龄9年 8粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值