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

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

3天内不再提示

C语言求数组长度的5种方法

撞上电子 2023-11-19 08:00 次阅读

1,使用 sizeof 运算符

#include
int main() { int array[] = {1, 2, 3, 4, 5}; unsignedchar length=sizeof(array)/sizeof(array[0]);
printf("Array length: %d\n", length);
return 0;}

解析:sizeof(array) 返回整个数组的字节大小,sizeof(array[0]) 返回数组中一个元素的字节大小。通过相除可以得到数组的元素个数。

2,使用宏定义

#include
#define ARRAY_LENGTH(arr) (sizeof(arr) / sizeof(arr[0]))
int main() { int array[] = {1, 2, 3, 4, 5}; unsigned char length = ARRAY_LENGTH(array);
printf("Array length: %d\n", length);
return 0;}

解析:这里使用了宏定义,将获取数组长度的操作封装在 ARRAY_LENGTH 中,使得代码更具可读性。

3,传递数组和数组长度给函数

#include
unsigned char getArrayLength(int *arr, size_t size) { return size;}
int main() { int array[] = {1, 2, 3, 4, 5}; unsigned char length = getArrayLength(array, sizeof(array) / sizeof(array[0]));
printf("Arraylength:%d\n",length); return 0;}

解析:函数 getArrayLength 接受一个指向整数的指针和数组的大小,然后直接返回数组的大小。


4,使用 strlen(适用于字符串数组)

#inlude#include
int main() { char strArray[] = "Hello, World!"; unsigned char length = strlen(strArray);
printf("StringArraylength:%d\n",length);
return 0;}

解析:strlen 函数用于计算字符串的长度,适用于以 null 结尾的字符串数组。


5,使用指针

#include
int main() { int array[] = {1, 2, 3, 4, 5}; int *ptr = array; unsigned char length = sizeof(array) / sizeof(*ptr);
printf("Array length: %d\n", length);
return 0;}

解析:将数组的首地址赋给指针,然后通过指针进行操作。这里同样使用了 sizeof 方法。==========

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

    关注

    180

    文章

    7614

    浏览量

    137590
  • 数组
    +关注

    关注

    1

    文章

    417

    浏览量

    26016
  • 运算符
    +关注

    关注

    0

    文章

    172

    浏览量

    11102
收藏 人收藏

    评论

    相关推荐

    数组名之间可以直接赋值吗

    数组之间的赋值能不能直接使用等于号?比如这样的代码。 int main(){ int a[5] = {1, 2, 3, 4, 5}; int b[5] = {0}; b = a
    的头像 发表于 11-26 11:23 205次阅读

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

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

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

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

    C语言指针运算符详解

    C语言中,当你有一个指向数组中某个元素的指针时,你可以对该指针执行某些算术运算,例如加法或减法。这些运算可以用来遍历数组中的元素,如ptr[i]等价于*(ptr + i)。然而,如果
    的头像 发表于 10-30 11:16 301次阅读

    C语言指针详细解析

    称之为字符数组。 在 C语言中,因为字符数组的元素内存储的都是 char 型的字符,所以字符数组的数据类型是 char 型,因而字符串实际上
    发表于 09-14 10:03

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之数组

    一个字符串,使用${Arr[@]},将所有成员分别打包为一个字符串。我们仍然在myshell.sh中进行演示,在该文件中定义数组Arr,分别使用三方式进行打印:执行并打印:3、获取数组长度数组长度获取使用或者${#Arr[@]
    发表于 09-03 14:23

    hex文件如何查看原c语言代码

    是处理器可以直接执行的指令,而 C 语言代码则是人类可读的高级编程语言代码。 然而,如果你想要从 .hex 文件中获取一些有用的信息或者对程序进行分析,你可以考虑以下几种方法: 反汇编
    的头像 发表于 09-02 10:37 2733次阅读

    飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之数组

    件中定义数组Arr,分别使用三方式进行打印:执行并打印:3、获取数组长度数组长度获取使用或者${#Arr[@]},在脚本中加入:执行脚本,可以看到数组大小为3:
    发表于 08-30 09:25

    pwm脉宽调制的四种方法有哪些

    于电机控制、LED调光、音频处理等领域。以下是四常见的PWM脉宽调制方法: 固定频率PWM(Fixed-Frequency PWM) 固定频率PWM是一最基本的PWM调制方法。在这
    的头像 发表于 08-08 15:10 1677次阅读

    人脸检测的五种方法各有什么特征和优缺点

    人脸检测是计算机视觉领域的一个重要研究方向,主要用于识别和定位图像中的人脸。以下是五常见的人脸检测方法及其特征和优缺点的介绍: 基于肤色的方法 特征:基于肤色的方法主要利用人脸肤色与
    的头像 发表于 07-03 14:47 957次阅读

    在一个.c文件中定义一个数组遇到的疑问求解

    在一个.c文件中定义一个数组,然后在其他文件中引用,用sizeof求数组长度,那么按说是必须要声明这个数组,并且应该指明数组的大小,但是是不
    发表于 05-14 07:03

    嵌入式中零长度数组基本操作方法

    C语言长度数组,听起来可能有点奇怪,因为它没有分配内存空间,无法存储数据。但实际上,零长度数组在Linux内核中随处可见。 零长度数组的定
    的头像 发表于 05-11 08:49 1035次阅读
    嵌入式中零<b class='flag-5'>长度数组</b>基本操作<b class='flag-5'>方法</b>

    嵌入式系统中C语言结构体的基础实现与应用

    C语言中的数组只能允许程序员定义存储相同类型数据。但是结构是C语言编程中允许您存储不同数据类型的数据。
    发表于 03-12 14:29 551次阅读
    嵌入式系统中<b class='flag-5'>C</b><b class='flag-5'>语言</b>结构体的基础实现与应用

    三菱M70 PLC增加注解的三种方法简析

    三菱M70 PLC增加注解的三种方法
    的头像 发表于 02-26 09:59 1150次阅读
    三菱M70 PLC增加注解的三<b class='flag-5'>种方法</b>简析

    c语言,c++,java,python区别

    C语言C++、Java和Python是四常见的编程语言,各有优点和特点。 C
    的头像 发表于 02-05 14:11 2572次阅读