C++如何取得数组元素的个数

C++如何取得数组元素的个数,第1张

没用用到容器,纯数组个数没有现成的函数可以求。

以下代码可以实现

#include <iostream>

using namespace std;

int main()

{

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

int i;

for(i=0;a[i];i++);

cout<<i<<endl;

system("pause");

}

int data[30];

data[30]={0,1,2,1,3,1,0,0,0};

这种写法错误!data[30]= 这只是给数组的第31个元素赋值。

但我知道你的意思。你可以先给数组赋一个你后面的程序正常情况下不会出现的值。

如:

int data[30];

memset(data, -65535, 30);// 这里-65535得是后来的正常值中不会出现的。

//给数组添加正常值

。。。

//计算数组中实际元素个数

int count = 0;

while(data[count] != -65535) count++;

//实行完上面的代码,count里的值就是实际元素的个数了。

有一个函数就是为了获取数组元素个数的:sizeof!

原理是:sizeof获取数组的长度然后除以数据类型所占的长度得到元素个数

我简单写下代码:

int a[100]={1,2,3,4}; int len=sizeof(a)/sizeof(int); printf("%d\n",len);

以上为原来的回答,有错误:

在给定数组大小时候sizeof这个方法就不起作用了,我当时没注意犯了错误有些误人子弟了

原谅我一年以后才来修改这个答案~

我想了想int数组默认全是0称为初始化,姑且说非0为有效元素

while(i<100)

{

if(a[i]!=0)

count++;

i++;

}

遍历,记录

字符数组有结束符,只要找到结束符的位置就可以了

对于字符数组str[N],判断方法有以下三种:

第一种:用库函数strlen

len = strlen(str); // 数组长度

第二种:利用计数器

int i=0;

while(str[i++] != '\0'); // 数组str的长度为i

第三种:利用sizeof函数

len = sizeof(str)/sizeof(str[0]); // 数组长度对于其他类型的数组,都可以用字符数组的第三种方法,第三种方法是通用的。

C语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数),通过数组占内存总空间/单个元素占内存空间大小,即可得到数组的元素个数

例如

但是,通过将数组作为函数参数传递到函数中,以获得数组长度是不可行的

例如

原因:数组arr是函数参数,在函数中,arr只是一个指针(地址,系统在本函数运行时,是不知道arr所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址),所以,sizoef(arr)的结果是指针变量arr占内存的大小,一般在32位机上是4个字节。arr[0]是int类型,sizeof(arr[0])也是4个字节,所以,结果永远是1。

如果想要在被调用的函数中,得知原数组的大小,可以再给函数添加一个参数,用于指定数组的大小,让外界调用函数前就讲数组的大小传递进来

sizeof(a)/sizeof(a[0]),这个求的是来数组总长度,也源就是定义的时候给它分配的,其中a是数组名。

学习,是指通过阅读、听讲、思考、研究、实践等途径获得知识和技能的过程。学习分为狭义与广义两种:

狭义:通过阅读、听讲、研究、观察、理解、探索、实验、实践等手段获得知识或技能的过程,是一种使个体可以得到持续变化(知识和技能,方法与过程,情感与价值的改善和升华)的行为方式。例如通过学校教育获得知识的过程。

广义:是人在生活过程中,通过获得经验而产生的行为或行为潜能的相对持久为方式。

社会上总会出现一种很奇怪的现象,一些人嘴上埋怨着老板对他不好,工资待遇太低什么的,却忽略了自己本身就是懒懒散散,毫无价值。

自古以来,人们就会说着“因果循环”,这话真不假,你种什么因,就会得到什么果。这就是不好好学习酿成的后果,那么学习有什么重要性呢?

物以类聚人以群分,什么样水平的人,就会处在什么样的环境中。更会渐渐明白自己是什么样的能力。了解自己的能力,交到同水平的朋友,自己个人能力越高,自然朋友质量也越高。

在大多数情况下,学习越好,自身修养也会随着其提升。同样都是有钱人,暴发户摆弄钱财只会让人觉得俗,而真正有知识的人,气质就会很不一样。

高端大气的公司以及产品是万万离不了知识的,只有在知识上不输给别人,才可以在别的地方不输别人。

孩子的教育要从小抓起,家长什么样孩子很大几率会变成什么样。只有将自己的水平提升,才会教育出更好的孩子。而不是一个目光短浅的人。

因为有文化的父母会给孩子带去更多的在成长方面的的帮助,而如果孩子有一个有文化的父母,通常会在未来的道路上,生活得更好,更顺畅。

学习是非常的重要,学习的好坏最终决定朋友的质量、自身修养和后代教育等方面,所以平时在学习中要努力。

C++中数组可分为堆区的数组和栈区的数组,对于两种数组C++都没有函数可以直接获取数组的元素的个数。

一、堆区的数组

堆区的数组是自己申请的,比如用new申请空间:

int arr = new int[10];

堆区的数组不能计算出包含元素个数。

二、栈区的数组

栈区的数组是系统自动分配的,如:

[cpp] view plain copy

int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };

栈区的数组可以通过以下两种方法得出元素的个数:

(1)

[cpp] view plain copy

int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };

auto diff = sizeof(arr)/sizeof(int);

(2)

这种方法需要所用编译器支持C++11,14

[cpp] view plain copy

int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };

int pbeg = begin(arr);

int pend = end(arr);

auto length = pend - pbeg;//数组元素个数

以上就是关于C++如何取得数组元素的个数全部的内容,包括:C++如何取得数组元素的个数、怎样统计一个数组中实际数据个数、请问在C语言中如何获取一个数组里存在多少个元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9729914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存