嵌入式全栈开发学习笔记---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就变成了第二行第二个元素的地址。

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

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

相关推荐
leisoo80975 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
青瓦梦滋6 小时前
传输层UDP/TCP协议
linux·网络·c++·网络协议·tcp/ip·udp
ltl7 小时前
机密计算:SGX、SEV-SNP、TDX 与 ARM CCA
linux
ltl7 小时前
互联与网络:NVLink、InfiniBand、RoCE 与国产替代
linux
码上上班7 小时前
tengine知识点
linux·服务器·centos
捷瑞电子工坊7 小时前
嵌入式秋招面经:5大核心模块高频考题与实战避坑总结
c语言·stm32·嵌入式工程师·rtos·通信协议·嵌入式面试
大爱编程♡8 小时前
GPIO-I2C
stm32·单片机·嵌入式硬件
振南的单片机世界9 小时前
PVD掉电中断——让单片机“咽气前”写完遗书
arm开发·stm32·单片机·嵌入式硬件
雾时之林9 小时前
Linux--软件管理、源码包安装
linux·服务器·数据库
续写烂尾12 小时前
SD NAND存储实测:正点原子STM32精英板SDIO读写验证全流程
stm32·单片机·嵌入式硬件