C++ 程序length方法错在哪里了 提示error C2228: left of '.length' must have class/struct/union type

#include<iostream>usingnamespacestd;voidmain(){inta[]={1,2,3};inti=0;for(i;i<a.length... #include<iostream>
using namespace std;
void main (){

int a[]={1,2,3};
int i=0;
for(i;i<a.length;i++) {
}
}
在length改成length()也是不对
展开
 我来答
匿名用户
2013-10-10
展开全部

你是现要求数组a[]的长度(包含的元素个数)吧,C++里面没有直接记录数组长的length值,你这是java里可以用的.

在C++你只需这样既可!

代码如下

#include<iostream>
using namespace std;
void main (){

 int a[]={1,2,3};
    int i=0;
 for(i;i<sizeof(a)/sizeof(int);i++)
 {
  cout<<"a["<<i<<"]="<<a[i]<<endl;
 }
}

因为sizeof(a)求出的是数组a[]所占的字节数,而每个元素占4个字节(int型VC6.0中),所以元素个数为

sizeof(a)/sizeof(int)个.sizeof(int)求的是一个int类型所占的字节数.(因为不同的编译器有可能不一样VC6.0为4个字节,而TC为两个字节).

运行结果如下:

zhaoyj163em
2013-10-10 · TA获得超过1033个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:362万
展开全部
楼主,你用的是C++不是Java,数组在C++里面不是对象,没有length参数,遍历数组你得知道数组的确切长度是多少,然后循环。

对于上面int a[]={1,2,3}
你可以是是用 sizeof(a) / 4 来作为a的长度。
但是通常我们都是知道a的长度然后才遍历a数组的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
顶峰风光无限
2013-10-10 · TA获得超过683个赞
知道小有建树答主
回答量:856
采纳率:50%
帮助的人:404万
展开全部
写成
for(i;i<sizeof(a);i++) {
}
才对

a.length,要a中包含length成员才行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0cfe3dd
2013-10-10 · TA获得超过180个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:97.6万
展开全部

#include<iostream>
using namespace std;
void main (){

int a[]={1,2,3};
    int i=0;
for(i;i<sizeof(a)/sizeof(int);i++) {
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式