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

目录

二维数组

二维数组的初始化

遍历二维数组

二维数组的数组名

笔试题11


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

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

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

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

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

我们正式开始:

数组

数组分为:

一维数组

二维数组

字符数组(笔试重点)

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

二维数组

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

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

例如:float a34,b510

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

二维数组的初始化

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

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

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

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

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

例如:

int a23={{1}, {5}, {9}}; //没有赋值的为0

int a23={{1}, {2, 3}};

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

例如:int a23={1, 2, 3, 4, 5, 6};

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

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

遍历二维数组

int a34;

int i,j;

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

{

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

{

printf("%d ",aij)

}

printf("\n");

}

二维数组的数组名

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

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

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

笔试题11

数组a34,哪个不能表示a11的地址?

A、a1 + 1

B、&a11

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

D、a+5

答案是:D

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

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

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

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

相关推荐
Full Stack Developme11 小时前
JVM 与 Linux 交互的核心原理
linux·运维·jvm
HackTwoHub11 小时前
最新Nessus2026.6.8版本主机漏洞扫描/探测工具Windows/Linux
linux·运维·服务器·安全·web安全·网络安全·安全架构
qq_1631357511 小时前
Linux 【04-mkdir命令超详细教程】
linux
qq_1631357511 小时前
Linux 【08-mv命令超详细教程】
linux
Szime11 小时前
高速 ADC 国产替代选型:通信、雷达、仪器仪表项目要看哪些参数?
单片机·嵌入式硬件·fpga开发
Jun62613 小时前
QT(12)-制作lib库
开发语言·qt
灯琰113 小时前
# STM32L051K6U6 IAP Bootloader 开发踩坑实录
stm32
菜鸟的学习日记、13 小时前
GPIO的几种模式——以STM32为例
stm32·单片机·嵌入式硬件·gpio
辰哥单片机设计14 小时前
STM32智能睡眠检测系统
stm32·单片机·嵌入式硬件
qq_1631357514 小时前
Linux 【07-rm命令超详细教程】
linux