C语言中如何求一个数组的长度
来源:互联网 发布:js正则表达式空格 编辑:程序博客网 时间:2024/05/19 04:56
首先对于一维数组,如:
char a[]={1,2,3,4};int b[]={1,2,3,4,5};float c[]={1.0,2.0,3.0};
如何求取这些数组的长度呢?可以使用sizeof(),但由于sizeof()返回的是字节长度,所以可以使用sizeof(x)/sizeof((x)[0])。
#include "stdio.h"#include "stdlib.h"#define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))void main(void){ char a[] = { 1,2,3,4 }; int b[] = { 1,2,3,4,5 }; float c[] = { 1.0,2.0,3.0 }; int length_a = 0; int length_b = 0; int length_c = 0; length_a = ARRAY_SIZE(a); length_b = ARRAY_SIZE(b); length_c = ARRAY_SIZE(c); printf("length of a[]=%d\n", length_a); printf("length of b[]=%d\n", length_b); printf("length of c[]=%d\n", length_c); system("pause");}
运行结果如下:
那么对于二维数组呢?
如:
char a[][2] = { 1,2,3,4 };int b[][3] = { 1,2,3,4,5,6 };float c[][2] = { 1.0,2.0,3.0,4.0 };
可以使用sizeof(x)/sizeof((x)[0][0])。
#include "stdio.h"#include "stdlib.h"#define ARRAY_SIZE_2(x) (sizeof(x)/sizeof((x)[0][0]))void main(void){ char a[][2] = { 1,2,3,4 }; int b[][3] = { 1,2,3,4,5,6 }; float c[][2] = { 1.0,2.0,3.0,4.0 }; int length_a = 0; int length_b = 0; int length_c = 0; length_a = ARRAY_SIZE_2(a); length_b = ARRAY_SIZE_2(b); length_c = ARRAY_SIZE_2(c); printf("length of a[]=%d\n", length_a); printf("length of b[]=%d\n", length_b); printf("length of c[]=%d\n", length_c); system("pause");}
运行结果如下:
总结:原理就是利用sizeof(),先求取数组元素所占的总的字节长度,再求出一个首元素所占的字节长度(即元素类型的长度),相除即可得到数组的长度。
阅读全文
0 0
- C语言中如何求一个数组的长度
- C语言中如何求任意一个int型数组的长度
- C语言中如何求任意一个int型数组的长度?
- C语言中如何求任意一个int型数组的长度?
- c语言中求数组长度的
- C语言中可以求任意一个int型数组的长度吗?
- 【c语言】求一个字符串的长度
- C语言中计算一个数组长度
- C语言 求数组长度
- c语言和c++中求数组长度
- c语言中数组长度的计算
- c语言中数组长度的计算
- 求一个数组的长度
- 求一个数组的长度
- C语言 求一个字符串中最长回文子串的长度
- 【c语言】实现一个函数,求字符串的长度
- 用c语言实现求一个字符串长度的函数
- linux c求一个数组长度
- 初学者福音,教你如何学好java!
- 问题杂记
- STM32 I2C学习
- 自顶向下,逐步求精(Top-down)的程序设计方法简介
- Excel MAC十六进制递增
- C语言中如何求一个数组的长度
- Log4j配置详解
- c/c++标准预定义宏
- nginx+uwsgi+django部署python项目
- 旗正规则引擎在薪资管理方面的应用
- imx6ul+i2c使用
- 九宫格解锁
- rownum和rowid
- Spring源码分析:AOP源码解析(上篇)