云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > CC++中获取数组长度的方法

CC++中获取数组长度的方法

  • 62 次阅读
  • 3 次下载
  • 2025/6/13 20:27:30

这篇文章主要介绍了C/C++中获取数组长度的方法,很实用的一种方法,需要的朋友可以参考下

学过C/C++的人都知道,在C/C++中并没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取其长度,那么对于其他类型的数组如何获取他们的长度呢?

其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时都把它定义成一个宏,比如:

#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));}

而在C++中则可以使用模板技术定义一个函数,比如:

template

int getArrayLen(T& array) {

return (sizeof(array) / sizeof(array[0])); }

这样对于一些简单的数组可以使用这个宏或者这个函数来获取数组的长度了。

以下是两个Demo程序,一个C语言的,一个C++的:

注意:若数组为存储字符串的字符数组,即以双引号括起来的字符串整体初始化的字符数组

例如:

char a[]=\ 或者

char a[]={\

则所求得的长度为字符数组的长度,而不是对应的字符串的长度,要求字符串的长度还需要减一。原因为存储字符串的字符数组末尾有一个'\\0'字符,需要去掉它。

对于下例:

char a[]=\sizeof(a)/sizeof(a[0])=8;

要求字符串长度的话应该减1.

但对于:

char a[]={'a','b','c','d','e','f','g'}; sizeof(a)/sizeof(a[0])=7

C语言实例如下:

#include #include

#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} //定义一个带参数的宏,将数组长度存储在变量len中 int main() {

char a[] = {'1','2','3','4'}; int len;

GET_ARRAY_LEN(a,len)

//调用预定义的宏,取得数组a的长度,并将其存储在变量len中 printf(\

system(\ return 0; }

输出结果为:4

C++实例如下:

#include using namespace std;

template

int getArrayLen(T& array) //使用模板定义一个函数getArrayLen,该函数将返回数组array的长度 {

return (sizeof(array) / sizeof(array[0])); }

int main() {

char a[] = {'1','2','3'};

cout << getArrayLen(a) << endl;

return 0; }

搜索更多关于: CC++中获取数组长度的方法 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

这篇文章主要介绍了C/C++中获取数组长度的方法,很实用的一种方法,需要的朋友可以参考下 学过C/C++的人都知道,在C/C++中并没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取其长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时都把它定义成一个宏,比如: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 而在C++中则可以使用模板技术定义一个函数,比如: template int getArrayL

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com