以下代码可以实现
#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语言中如何获取一个数组里存在多少个元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)