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

    文章

    7633

    浏览量

    142135
  • 数组
    +关注

    关注

    1

    文章

    420

    浏览量

    26726
  • 运算符
    +关注

    关注

    0

    文章

    173

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入理解C语言C语言循环控制

    改变程序的执行流程,使代码更加灵活和可控。本文将详细介绍这些语句的作用及其应用场景,并通过示例代码进行说明。Part.1break语句C语言中break语句有两
    的头像 发表于 04-29 18:49 ?1241次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制

    全套C语言培训资料—PPT课件

    全套C语言培训资料,共427页,13个章节:C语言概述、程序的灵魂—算法、数据类型 & 运算符与表达式、顺序程序设计、选择结构程序设计、循环控制、
    发表于 03-12 14:50

    字符串与字符数组的区别

    在编程语言中,字符串和字符数组是两基本的数据结构,它们都用于存储和处理文本数据。尽管它们在功能上有一定的重叠,但在内部表示、操作方式和使用场景上存在显著差异。 1. 内部表示 字符串 字符串在
    的头像 发表于 01-07 15:29 ?1194次阅读

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

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

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

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

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

    今天我们来揭开Air780E 软件中 C 语言内存数组的神秘面纱,希望有所收获。
    的头像 发表于 11-17 10:00 ?689次阅读
    解读版|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 ?826次阅读

    搭建开源大语言模型服务的方法

    本文我们将总结5搭建开源大语言模型服务的方法,每种都附带详细的操作步骤,以及各自的优缺点。
    的头像 发表于 10-29 09:17 ?748次阅读

    C语言关键字--typedef

    C语言关键字使用方法学习指南!
    的头像 发表于 10-07 12:44 ?652次阅读

    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 ?5089次阅读

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

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

    MCUXpresso IDE下在线联合调试双核MCU工程的三种方法

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是MCUXpresso IDE下在线联合调试i.MXRT1170双核工程的三种方法
    的头像 发表于 08-08 15:18 ?1434次阅读
    MCUXpresso IDE下在线联合调试双核MCU工程的三<b class='flag-5'>种方法</b>

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

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