嵌入式全栈开发学习笔记---C语言笔试复习大全9

目录

二维数组

二维数组的初始化

遍历二维数组

二维数组的数组名

笔试题11


上一篇复习了一维数组,这一篇我们来复习二维数组

说明:我们学过单片机的一般都是有C语言基础的了,网上关于C语言的资料有很多,大家如果对C语言不熟悉的话可以先去详细学一下,再以这篇博文作为复习资料学习。

这篇博文的目的是复习C语言,我们会陆续以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。

注意:由于本专栏是嵌入式全栈开发专栏,为了我们能熟悉以后实际工作中的开发环境,我们写C语言全部在Linux中的vim编辑器中写,这么做事为了我们能够熟练掌握Linux系统的常用命令以及Linux上的vim编辑器的常用工作命令,以达到对口训练的目的!

vim编辑器的一些工作命令在上一篇博文中已经详细介绍过了,如果不了解可以先去看看。

我们正式开始:

数组

数组分为:

一维数组

二维数组

字符数组(笔试重点)

上一篇复习了一维数组,我们现在来看二维数组

二维数组

二维数组定义的一般形式为:

类型说明符 数组名[常量表达式][常量表达式];

例如:float a[3][4],b[5][10];

定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。

二维数组的初始化

1、分行给二维数组赋初值。

例如: int a[2][3]={{1,2,3},{4,5,6}}; //最正规的写法

2、可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。

例如:int a[2][3]={1,2,3,4,5,6}; //编译会报警告

3、可以对部分元素赋初值。

例如:

int a[2][3]={{1}, {5}, {9}}; //没有赋值的为0

int a[2][3]={{1}, {2, 3}};

4、如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。即行可以省,列不可以省。

例如:int a[2][3]={1, 2, 3, 4, 5, 6};

等价于:int a[ ][3]={1, 2, 3, 4, 5, 6};

5、二维数组初始化为全0,int a[2][3]={{0},{0}};有些编译器还支持写成int a[2][3]={0};

遍历二维数组

int a[3][4];

int i,j;

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

{

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

{

printf("%d ",a[i][j])

}

printf("\n");

}

二维数组的数组名

1、数组名a表示首行地址 ,即0x100,a + 1 = 0x110;(加1就到了下一行的地址)

2、a[0] (也可以写成 a[0][0] 表示首行首元素地址 ,即0x100,a[0] + 1 = 0x104;(加1就到了当行的第二个元素的地址);注意a[0]表示首行首元素的地址,a[1]表示第二行首元素的地址,以此类推

3、&a表示数组地址 ,即0x100,&a + 1 = 0x12C。(加1跨越了整个数组)

笔试题11

数组a[3][4],哪个不能表示a[1][1]的地址?

A、a[1] + 1

B、&a[1][1]

C、(*(a + 1)) +1

D、a+5

答案是:D

a表示首行的地址,+5就跳到第六行了,但是这个数组只有4行,所以已经不在这个数组范围内了。

a + 1是第二行的地址,*(a + 1) 变成第二行首元素的地址,(*(a + 1)) +1就变成了第二行第二个元素的地址。

以上就是这篇内容,如想了解更多,欢迎订阅本专栏!

如有问题可评论区或者私信留言,如果想要进交流群请私信!

相关推荐
tan180°9 分钟前
Boost搜索引擎 网络库与前端(4)
linux·网络·c++·搜索引擎
Mr. Cao code1 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
LS·Cui1 小时前
单片机按键示例功能
单片机
抓饼先生1 小时前
Linux control group笔记
linux·笔记·bash
【ql君】qlexcel1 小时前
MCU上电到运行的全过程
单片机·嵌入式硬件·mcu·启动过程
搞一搞汽车电子1 小时前
S32K3平台eMIOS 应用说明
开发语言·驱动开发·笔记·单片机·嵌入式硬件·汽车
挺6的还2 小时前
25.线程概念和控制(二)
linux
pQAQqa2 小时前
FreeRTOS项目(2)摇杆按键检测
stm32·单片机·嵌入式硬件·freertos
您的通讯录好友2 小时前
conda环境导出
linux·windows·conda
代码AC不AC3 小时前
【Linux】vim工具篇
linux·vim·工具详解