| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1735 人关注过本帖
标题:求助:关于数组长度
只看楼主 加入收藏
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
我也不大清楚,不过我觉得16位的应该和32位的不同,16位的编译器象TC等我好久没用了。

哦对了,还有我刚刚才看到的,这个循环是这样的,可能我写得太紧凑了:

for (int len=0; *aa; aa++, ++len); //len是用来计数的,条件判断 *aa 为真(非NULL)时,指针aa移动,len加一,
//直到 *aa == '\0' 为止。注意循环后面有个分号!

我的原则很简单:不做不喜欢的事!
2006-07-28 23:01
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
[QUOTE]int aa[5]={1,2,3,4,5};[/QUOTE]
..后面的'\0'怎么来啊..我就是在这没看明白

你把他当做char了吧..

还有.我认为楼主的问题暂时是没办法解决的.可能C++会好点

C的方法总之我还没有想到.求长度这件事你应该在定义数组的函数里办了他


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-07-28 23:04
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
咦,对啊,偶怎么搞的,以为是字符串了

我的原则很简单:不做不喜欢的事!
2006-07-28 23:06
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
那没办法,只能靠参数传递了。

我的原则很简单:不做不喜欢的事!
2006-07-28 23:07
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
谢谢
大家,看来只能在主函数里面先算出长度,再通过参数传递。

2006-07-29 08:30
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

也不是完全没有法子.拿结构体

[CODE]#include <stdio.h>
struct value{
int aa[5];
};
main()
{
int n;
struct value ab;
void fun(struct value ab);
n=sizeof(ab)/sizeof(ab.aa[0]); /*数组的元素个数*/
printf("in main function:n=%d\n",n);
fun(ab);

}

void fun(struct value ac)
{
int n;
n=sizeof(ac)/sizeof(ac.aa[0]); /*数组的元素个数*/
printf("in fun function:n=%d\n",n);
}[/CODE]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-07-29 08:36
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
收藏
得分:0 
sizeof是编译时运算符,

n=sizeof(aa)/sizeof(aa[0]);采用这种方式得到数组长度不外:
1.这个数组可能在写程式的初期调试中,设计者会随时改变其长度
2.懒惰,懒得回头查,把这个工作丢给编译器.如果是这样,打PP
3.还有什么理由想不起来

偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-07-29 10:02
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
事情是这样的。
小弟我在做LU分解来解方程组比如:AX=b

为了使我写出来的函数具有通用性,当然矩阵A的行和列应当来说是可以变的(未知数的个数是可变的)。然而函数fun中要再申请一个与A同行同列的矩阵temp,由于二维矩阵的计算比一维的慢,并且二维数组的申请不方便(至少对于我这水平)。

所以改变一维的数组来表示A,此时,我们就会发现,你早请temp时,一定要知道A的长度。当然我们更想直接在函数fun中,直接计算算出A的数组元素个数,直接用,然而就出现以上这个问题。

如今,我是在main函数中计算出A的数组元素个数,然后在函数fun中加一个参数(这个参数就是数组元素个数)

对了,顺便问一下
二组数组如何申请,是用二维指针吗?
(具体写一段代码,申请三行两列的数组,谢谢)

2006-07-29 21:58
快速回复:求助:关于数组长度
数据加载中...
 
   



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

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