C语言:二维数组

1. 二维数组的定义

类型名 数组名常量表达式常量表达式

如:int a34;

数组a中含有的元素有:a00, a01, a02, a03,a10, a11, a12, a13, a20, a21, a22, a23

2. 二维数组的存储结构

二维数组中的下标变量在内存中的实际存储结构是线性的,不是二维的。想象成有行有列的二维表格形式,只是它们之间的逻辑关系。

以int a34为例,各个下标变量排列的先后顺序是:先是a0的四个变量,再是a1的四个变量,最后是a2的四个变量。

3.二维数组中下标变量的表示方法

下标法:如a12,表示的是a1这个一维数组中的第二个元素。

指针法:如*(*(a+1)+2)。a12相当于是(a1)2,由于x2与*(x+2)等价,所以(a1)2与*(a1+2)等价,这时候再把a1换成*(a+1),就可以得到*(*(a+1)+2)。

混合法:如*(a1+2),*(a+1)2

4. 二维数组的引用

(1)二维数组中的下标变量在表示时,要么有两个*,要么有两对\[\],有么有一个*和一个\[\]。*和\[\]都用来降维,当维数降为0时,就是变量。

(2)每次只能使用数组中的一个下标变量,若要操作多个下标变量,需要分多次进行操作。

cpp 复制代码
int a[2][3],i,j;
for(i=0;i<=1;i++)
    for(j=0;j<=2;j++)
    a[i][j]=0;

5. 二维数组的初始化

(1)给所有下标变量赋初值

cpp 复制代码
int a[2][3]={1,2,3,4,5,6};

(2)可以给每行数据再加一对大括号

cpp 复制代码
int a[2][3]={{1,2,3},{4,5,6}};

(3)可以省略第一个 中的表达式,省略时,编译器自动填上。

cpp 复制代码
int a[][3]={1,2,3,4};    //相当于int a[2][3];
int a[][3]={{1,2},{3},{4}};    //相当于int a[3][3];

(4)可以只对部分下标变量赋初值

cpp 复制代码
int a[2][3]={1,2,3};    //下标变量的值依次为1,2,3,0,0,0
int a[][3]={{1,2},{1}};    //下标变量的值依次为1,2,0,1,0,0
相关推荐
rannn_1118 分钟前
【力扣hot100】238、41、73题解
java·算法·leetcode·开发
在世修行9 分钟前
从零打造 C# 工业视觉检测系统(十一):Task 异步编程与实时性保障
开发语言·c#·task异步
QN1幻化引擎12 分钟前
认知场的涌现动力学:结构证明、Phi度量与意识签名电池
人工智能·深度学习·神经网络·算法·机器学习·agi
坚持编程的菜鸟10 小时前
模拟实现memmove
c语言·算法·模拟实现memmove
BUG研究员_10 小时前
Runnable与LCEL
开发语言·人工智能·python
wabs66611 小时前
关于图论【最短路径之Dijkstra算法(堆优化版)|卡码网47.参加科学大会的思考】
数据结构·算法·图论·优先级队列·邻接表·小顶堆·卡码网
坚持编程的菜鸟11 小时前
编写判断大小端程序
c语言·算法·判断大小端
papaofdoudou11 小时前
判断排列逆序奇偶性的乘积判别法(范德蒙德符号法)
人工智能·算法
牛艺翔12 小时前
C++基础
开发语言·c++
键盘会跳舞12 小时前
C++ :容器适配器stack源码级拆解
开发语言·c++··stack·先进后出