C语言之二维数组
二维数组
还是一个数组,只不过数组中得每一个元素又是一个数组
1). 声明语法
类型 数组名[行][列];
例: int nums[2][3];//2行3列的二维数组,保存的数据类型是int类型
char chs[3][5];//3行5列的二维数组,保存的数据类型是char类型
2). 初始化
A.在声明的时候初始化
a.
int nums[3][5] = { {10,32,34,43,45}, {5,45,23,45,34}, {19,2,34,23,35}}
b.
int nums[2][3] = { 1,2,3,4,5,6};
c.
省略行数(较少使用)
int nums[][3] = { {1,2,3} ,{4,5,6} };//编译器自动根据右边的数组来判断有多少行,这个判断出来是2行
int nums[][3] = { 1,2,3,4,5,6 };//这个有2行
int nuns[][2] = { 1,2,3,4,5};//这个有3行,只不过第三行的最后一个元素是0,第三行的第一个元素是5
tips:C语言中二维数组无论如何定义的时候都不可以少了列
3). 取值语法
数组名[行][列];
例: nums[1][3];//取第二行(下标为1的行)的第四列(下标为3的列)的数据;
4). 遍历二维数组
A.普通数组
for(int i=0;i<长度;i++){
}
B.二维数组
for(int i=0;i<行;i++){
for(int j=0;j<列;j++){
数组名[i][j];
}
}
5).二维数组的一些其他应用
A 二维数组的某行某列的元素作为函数的参数
是值传递:形参的值发生改变,不会影响到实参
B 二维数组作为函数的参数
引用传递:形参的值发生改变,会影响实参
C 二维数组占用的总字节数计算方法:
sizeof(二维数组名);
D 二维数组行数的计算公式:
二维数组占用的总字节数 / 二维数组中某一行的字节数 = 行数
行数 = sizeof(二维数组名) / sizeof(二维数组名[0]);
E 二维数组列数的计算公式:
二维数组某行占用的字节数 / 二维数组中某个小空间占用的字节数 =列数
列数 = sizeof(二维数组名[0]) / sizeof(类型);
6).二维数组和N维数组
二维数组应用范围比较少,但是一般是用来绘制平面的
具体应用:
画地图
二维数组: 数组中得每个元素又是一个数组
三维数组: 数组中得每个元素又是一个二维数组
int nums[3][2][3]; //三维数组
四维数组: 数组中得每个元素又是一个三维数组
int nums[4][4][2][3];
五维数组: 数组中得每个元素又是一个四维数组
……….
N维数组: 数组中得每个每个元素又是一个N-1维数组
C语言之二维数组的更多相关文章
- C语言 字符二维数组(多个字符串)探讨 求解
什么是二维字符数组? 二维字符数组中为什么定义字符串是一行一个? “hello world”在C语言中代表什么? 为什么只能在定义时才能写成char a[10]="jvssj" ...
- C语言中将二维数组作为函数参数来传递
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include <stdio.h> void func(int n, char ...
- C语言回顾-二维数组
1.二维数组:是一个特殊的一维数组 完全初始化: 1)int a[2][3]={{1,2,3},{2,3,4}}; 2)连续赋值int a[2][3]={1,2,3,2,3,4}; 3)可以省略第一维 ...
- C语言教学--二维数组和指针的理解
对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...
- C语言基础--二维数组
二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...
- 【C语言】二维数组做形参
二维数组有两种形式: ①在栈上: int a[4][4] = {...}; ②在堆堆上: int ** a = new int *[4]; for ...
- 【学习笔记】【C语言】二维数组
1. 什么是二维数组 一个数组能表示一个班人的年龄,如果想表示很多班呢? 什么是二维数组?int ages[3][10]; 三个班,每个班10个人 相当于3行10列 相当于装着3个一维数组 二维数组是 ...
- iOS,object-c传参c语言的二维数组
有那么一瞬间,懒得用NSArray,NSNumber,NSValue等一大堆蛋疼的转换,所以就定义了一个C的二维数组,反正OC支持C混编,可是蛋疼往往是传递的,这里不疼了,哪里就要疼,想把一个c的二维 ...
- C语言 memcpy二维数组的复制
今天在实现二维数组的复制功能时,竟然出现了好多问题,还是太不小心了. 我们知道,平时进行矩阵复制,无非是二重循环进行赋值操作,所以今天想改用利用memcpy进行复制操作,当然一维数组的复制在上一篇文章 ...
随机推荐
- SQL点滴16—SQL分页语句总结
原文:SQL点滴16-SQL分页语句总结 今天对分页语句做一个简单的总结,他们大同小异的,只要理解其中一个其他的就很好理解了. 使用top选项 *from Orders orderid from Or ...
- 快速构建Windows 8风格应用21-构建简单媒体播放器
原文:快速构建Windows 8风格应用21-构建简单媒体播放器 本篇博文主要介绍如何构建一个简单的媒体播放器. <快速构建Windows 8风格应用20-MediaElement>博文中 ...
- elasticsearch集群搭建实例
elasticsearch集群搭建实例 下个月又开始搞搜索了,几个月没动这块还好没有落下. 晚上在自己虚拟机上搭建了一个简易搜索集群,分享一下. 操作系统环境: Red Hat 4.8.2-16 el ...
- Juqery遮罩插件
Juqery遮罩插件,想罩哪就罩哪! 一 前言 在项目开发时发现没有一个用起来 爽一点的遮罩插件,看起来觉得不难 好吧那就利用空闲时间,自己折腾一个吧,也好把jquery再温习一下, 需要的功能 ...
- css3学习文档
什么是CSS3? CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能. 目前主流浏览器chrome.safari.firefox.opera.甚至360都已经支 ...
- 非接触式电子音乐控制器CHIMAERA
本篇文章,我将介绍个有意思的设备. 她就是Chimaera,一个基于电磁场效应的非接触式电子音乐控制器. <弹奏Chimaera的声音> 霍尔效应传感器阵列及其周围部件组成了一个连续的2D ...
- Failed to issue method call: Unit mysql.service failed to load: No such file or directory解决的方式
Failed to issue method call: Unit mysql.service failed to load: No such file or directory解决的方式 作者:ch ...
- iOS基础 - CALayer
一.CALayer简介 Core Animation是跨平台的,支持iOS环境和Mac OS X环境 凡是支持跨平台的框架,都不能直接使用UIKit框架,因为UIKit框架只能应用在iOS而不能用于M ...
- 网络tcp/ip资料
1. Linux TCP/IP 协议栈分析,这是chinaunix.net论坛里的N人写的电子书,可以在这里下载PDF版本.http://blog.chinaunix.net/u2/85263/sho ...
- D8
=-=昨天被老师拉去吃点心了就没有发题解...忧伤..昨天的T2貌似都没有调完嗯 今天脑洞是大啊.. T1模拟写挂..呵呵我一面 T2数学题..刚开始只会求素数表的那种方法暴力..不过后面他们都知道一 ...