0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【C语言经典面试题】求数组元素的个数的宏定义

嵌入式物联网开发 ? 来源:嵌入式物联网开发 ? 作者:嵌入式物联网开发 ? 2022-10-02 11:58 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

C语言经典面试题】求数组元素的个数的宏定义

经典面试题,有必要了解下!

1 问题描述

在C语言中,如何求一个数组中元素的个数呢?想想看!

2 示例代码

为此,我简单写一段示例代码:

?
#include 
#include 
?
#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
?
int test_array[] = {1, 2, 3, 4, 5, 6};
?
int main(int argc, const char *argv[])
{
printf("cnt: %d\\\\\\\\n", ARRAY_SIZE(test_array));
return 0;
}

重点语句就是: #define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])

3 总结

分析一下上面的宏定义:

先用sizeof数组求出整个数组所占的内存大小 a;

其次用sizeof求出单个数组元素所占的内存大小 b;

最后利用数组四线性存储的特性,使用除法,用 a 除以 b,即可求出数组中元素的个数。

我们来看一下测试结果:

image-20220930230138696

这个与数据定义中的6个元素是保持一致的。

image-20220930230157289

4 更多分享

[架构师李肯]

架构师李肯全网同名 ),一个专注于嵌入式IoT领域的架构师。有着近10年的嵌入式一线开发经验,深耕IoT领域多年,熟知IoT领域的业务发展,深度掌握IoT领域的相关技术栈,包括但不限于主流RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、主流IoT云平台的对接、嵌入式IoT系统的架构设计等等。拥有多项IoT领域的发明专利,热衷于技术分享,有多年撰写技术博客的经验积累,坚信【知识改变命运,技术改变世界】!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7633

    浏览量

    142172
  • 数组
    +关注

    关注

    1

    文章

    420

    浏览量

    26738
  • 宏定义
    +关注

    关注

    0

    文章

    51

    浏览量

    9251
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【硬件方向】名企面试笔试真题:大疆创新校园招聘笔试题

    名企面试笔试真题:大疆创新校园招聘笔试题-硬件 是几年前的题目,不过值得参考一下哦 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 05-16 17:31

    硬件工程师面试必看试题(经典)

    硬件工程师面试试题 模拟电路 1、基尔霍夫定理的内容是什么?(仕兰微电子) 2、平板电容公式(C=εS/4πkd)。(未知) 3、最基本的如三极管曲线特性。(未知) 4、描述反馈电路的概念
    发表于 04-21 15:36

    stm32 DMA串口接收到数组数组元素顺序错乱怎么解决?

    配置DMA循环模式,使用HAL_UART_Receive_DMA(&huart1,buffer,4)函数将串口数据循环发送到4个元素的buffer数组内,上位机20ms发送一次
    发表于 03-12 08:02

    面试题】人工智能工程师高频面试题汇总:概率论与统计篇(题目+答案)

    ?随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如概率论与统计知识
    的头像 发表于 01-22 13:00 ?988次阅读
    【<b class='flag-5'>面试题</b>】人工智能工程师高频<b class='flag-5'>面试题</b>汇总:概率论与统计篇(题目+答案)

    C语言试题

    来看一个C语言试题,应该很少有人能给出正确答案。 #include int f(){ printf("this is f ..."); return 1;}int g(){ printf
    的头像 发表于 12-30 09:48 ?453次阅读

    数组的下标为什么可以是负数

    a[3],数组名 a 作为数组元素地址,下标 3 表示从这个地址开始向后移动 3 个元素,至于具体是几个字节,得看什么元素。 所以 a[
    的头像 发表于 12-20 11:18 ?543次阅读

    面试题】人工智能工程师高频面试题汇总:机器学习深化篇(题目+答案)

    ,或者深度学习的框架,还有怎么优化模型,这些都是加分项,能有效提高面试通过率。本篇小编整理了一些高频的机器学习深化方面的面试题,这些题目都是从实际面试中总结出来的,非
    的头像 发表于 12-16 13:42 ?2905次阅读
    【<b class='flag-5'>面试题</b>】人工智能工程师高频<b class='flag-5'>面试题</b>汇总:机器学习深化篇(题目+答案)

    面试题】人工智能工程师高频面试题汇总:Transformer篇(题目+答案)

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习的那些算法
    的头像 发表于 12-13 15:06 ?1473次阅读
    【<b class='flag-5'>面试题</b>】人工智能工程师高频<b class='flag-5'>面试题</b>汇总:Transformer篇(题目+答案)

    人工智能工程师高频面试题汇总——机器学习篇

    ,或者深度学习的框架,还有怎么优化模型,这些都是加分项,能有效提高面试通过率。本篇小编整理了一些高频的机器学习方面的面试题,这些题目都是从实际面试中总结出来的,非常具
    的头像 发表于 12-04 17:00 ?1609次阅读
    人工智能工程师高频<b class='flag-5'>面试题</b>汇总——机器学习篇

    C语言数组应用计算机导论A第6讲:数组

    C语言数组应用计算机导论A第6讲:数组
    发表于 11-20 15:33 ?1次下载

    解读版|Air780E软件中C语言内存数组的神秘面纱!

    今天我们来揭开Air780E 软件中 C 语言内存数组的神秘面纱,希望有所收获。
    的头像 发表于 11-17 10:00 ?693次阅读
    解读版|Air780E软件中<b class='flag-5'>C</b><b class='flag-5'>语言</b>内存<b class='flag-5'>数组</b>的神秘面纱!

    C语言指针运算符详解

    C语言中,当你有一个指向数组中某个元素的指针时,你可以对该指针执行某些算术运算,例如加法或减法。这些运算可以用来遍历数组中的
    的头像 发表于 10-30 11:16 ?830次阅读

    C语言中最常见的定义写法

    如果让你用C语言写个定义,我相信大部分同学顺手就能写出define。
    的头像 发表于 10-28 11:12 ?863次阅读

    C语言指针详细解析

    。 二维数组 二维数组其实可以看成是一个矩阵,zai C语言中,定义个数组num[3][4],
    发表于 09-14 10:03

    labview字符串数组转化为数值数组

    常重要的。LabVIEW支持多种数据类型,包括数值、字符串、数组、簇等。在本例中,我们将关注字符串数组和数值数组。 字符串数组 :由一系列字符串组成的
    的头像 发表于 09-04 17:47 ?5850次阅读