标题:求元素个数
只看楼主
我很恨你
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-12-24
结帖率:50%
已结贴  问题点数:20 回复次数:2 
求元素个数
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int values[]={1,2,0,5,4,6,9,8,7,3};
    int len=sizeof(values);
    int i;
    for(i=0;i<10;i++)
        cout<<setw(3)<<values[i];
    cout<<endl<<endl;
    cout<<len<<endl;
}
这是程序的一部分,但是求得的元素个数不对,请问是怎么回事
搜索更多相关主题的帖子: namespace 元素 include values 
2013-04-14 16:11
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:15 
因为你的数组是int型的,然后有10个元素,一个int占四个字节,所以四十个。这样就对了int len=sizeof(values)/sizeof(int);

[ 本帖最后由 邓士林 于 2013-4-14 16:49 编辑 ]

Maybe
2013-04-14 16:46
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:5 
你看看这个:
Sizeof与Strlen的区别与联系(转)1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函数做参数,比如: short f();printf("%d\n", sizeof(f()));输出的结果是sizeof(short),即2。 4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。

Maybe
2013-04-14 16:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-404157-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.244110 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved