当前位置: 首页 > 编程笔记 >

C语言获取数组长度的几种方法

荣波
2023-03-14
本文向大家介绍C语言获取数组长度的几种方法,包括了C语言获取数组长度的几种方法的使用技巧和注意事项,需要的朋友参考一下

如何通过编程的手段获取某个数组的长度呢?

答案是使用关键字 sizeof。

前面说过,用 sizeof 可以获得数据类型或变量在内存中所占的字节数。同样,用 sizeof 也可以获得整个数组在内存中所占的字节数。因为数组中每个元素的类型都是一样的,在内存中所占的字节数都是相同的,所以总的字节数除以一个元素所占的字节数就是数组的长度。

那么如何用 sizeof 获得数组总的字节数呢?只要对数组名使用 sizeof,求出的就是该数组总的字节数。下面写一个程序看一下:

# include <stdio.h>
int main(void)
{  
  int a[10] = {0};
  printf("sizeof(a) = %d\n", sizeof(a));
  return 0;
}

输出结果是:
sizeof(a) = 40

数组 a 是 int 型的,每个元素占 4 字节,所以长度为 10 的数组在内存中所占的字节数就是 40。而总的字节数除以一个元素所占的字节数就是数组的长度,如下面这个程序:

# include <stdio.h>
int main(void)
{  
  int a[10] = {0};
  int cnt = sizeof(a) / sizeof(a[0]);
  printf("cnt = %d\n", cnt);
  return 0;
}

输出结果是:
cnt = 10

这样不管数组是增加还是减少元素,sizeof(a)/sizeof(a[0]) 都能自动求出数组的长度。需要注意的是,它求出的是数组的总长度,而不是数组中存放的有意义的数据的个数。比如定义一个int型的数组:

int a[10] = {1, 2, 3, 4, 5};

我们只初始化了五个元素,但是 sizeof(a)/sizeof(a[0]) 求出的是 10,而不是 5。换句话说,我们无法通过 sizeof(a)/sizeof(a[0]) 求出数组中有多少个有意义的数据。

使用库函数strlen

lenght = strlen(str); 

这种方法只适用于字符串数组

使用while循环遍历计数

int i=0;
while(str[i++] != '\0');

这种方法适用于计算数组中实际元素多少

到此这篇关于C语言获取数组长度的几种方法的文章就介绍到这了,更多相关C语言获取数组长度内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍Go语言获取数组长度的方法,包括了Go语言获取数组长度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言获取数组长度的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 本文向大家介绍C/C++中获取数组长度的方法示例,包括了C/C++中获取数组长度的方法示例的使用技巧和注意事项,需要的朋友参考一下 学过C/C++的人都知道,在C/C++中并没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取其长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]),

  • 语言是一种规范,要想使用它,需要将其实体化,用编译原理的话讲,可以大致分为编译器和解释器,而根据之前说的,如果把目标代码的解释过程看做解析过程,比如x86机器指令load到cpu时,根据不同的指令进行不同的运算,以及字节码的分派等,这个界限是模糊的 因此,这个事情可以这么讲,假设我们已经有一台机器M,它可以接收A语言并完成计算工作,则对于高级语言B来说,我们只要将其转换成A语言即可。根据实际情况,

  • 问题内容: 如果不知道该如何获取数组的第二维?仅给出第一维度。 例如,在 如何获得的第二维的值,即3。 谢谢 问题答案: 哪 三个? 您已经创建了一个多维数组。是一个int数组的数组;您有两个长度为三的数组。 会给你第一个数组的长度。 另外值得注意的是,您不必像以前那样初始化多维数组,这意味着所有数组的长度不必相同(或根本不存在)。

  • 数组是一种内存分配的形式,数组是定义了一个连续的空间,与指针类似。 数组定义方式 类型 数组名[数组大小];//类型为每个空间的大小,我们通过数组名和下标访问数据,数组名指向存储数据的首地址,但是我们不可以改变数组名指向的地址。数组大小只有在定义的时候生效,定义之后不可以被改变。 int a[100]; //申请了一个名叫a的数组,它包含了100个整型。 数组的访问 我们可以通过数组的下标访问数

  • 本文向大家介绍C语言获取消耗内存的方法,包括了C语言获取消耗内存的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C语言获取消耗内存的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C语言程序设计有所帮助。