| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4112 人关注过本帖, 1 人收藏
标题:如何统计数组的长度。。
只看楼主 加入收藏
可见光
Rank: 1
等 级:新手上路
帖 子:143
专家分:0
注 册:2007-6-15
收藏(1)
 问题点数:0 回复次数:11 
如何统计数组的长度。。
void add(unsigned int *R1,unsigned int *R2,unsigned int *R_add)
{
int i,h=0,t=0,
for(i=0;R1[i]!='\0';i++)
h++;//统计两个加数由多少个无符号整型组成
for(i=0;R2[i]!='\0';i++)
t++;//统计两个加数由多少个无符号整型组成
......
......

}
我现在想得到R1和R2的长度,用上面的方法,不能得到正确的结果。。。
谁能给我出出主意啊
搜索更多相关主题的帖子: 长度 统计 
2007-11-20 13:55
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
你的程序只对字符数组有用```

如果是这个数组: A[]={123,456,789}

里面可是没有'\0'``

我的意见是sizeof(A)(貌似写错了``但是就是这个意思)/sizeof(数组类型)


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-11-20 15:05
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
int i,h=0,t=0, //
for(i=0; R1[i] != '\0';i++)
h++;
for(i=0; R2[i] != '\0'; i++)
t++;


这个只对字符串有效。

///////////////////////////////////

数组的长度程序中是已经确定的。

如:

int ar[5]; // 这个就5个元素,已经知道了的。



[此贴子已经被作者于2007-11-20 15:20:09编辑过]


—>〉Sun〈<—
2007-11-20 15:17
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 

LZ是对的 


蝴 蝶 颤 动 了 翅 膀 !!!
2007-11-20 15:21
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
sizeof
也不能写进函数。

只能

int ar[5];
printf("%u", sizeof ar); // 这样才能得到数组 ar 的大小(以字节计)

//------------------

void size(int * p)
{
printf("%u", sizeof p);
// 这样打印的只能是 指针的大小(32 位系统为 4字节)
}

int ar[5];


—>〉Sun〈<—
2007-11-20 15:26
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
得到字符串的长度是可以的。
得到 unsigned int 数组的长度是不可能的。(无法统计)

// 数组长度怎么可能会不知道呢

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int ar1[5]; // 5
int ar2[10]; // 10
int * ar3 = (int *)malloc(sizeof(int) * 9); // 9

return 0;
}


—>〉Sun〈<—
2007-11-20 15:32
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用死了都要C在2007-11-20 15:05:00的发言:
你的程序只对字符数组有用```

如果是这个数组: A[]={123,456,789}

里面可是没有'\0'``

我的意见是sizeof(A)(貌似写错了``但是就是这个意思)/sizeof(数组类型)
//这种只对A[]={...}有用,如果是A[MAX].你的还奏效吗?



倚天照海花无数,流水高山心自知。
2007-11-20 15:46
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用cosdos在2007-11-20 15:26:58的发言:
sizeof
也不能写进函数。

只能

int ar[5];
printf("%u", sizeof ar); // 这样才能得到数组 ar 的大小(以字节计)

//------------------

void size(int * p)
{
printf("%u", sizeof p);
// 这样打印的只能是 指针的大小(32 位系统为 4字节)
}

int ar[5];

不是不能写进函数,而是两个测试的类型就不同,一个是数组,一个是地址.因为数组参数传递过去就是一个地址.
就是说是不能测试传递过来的数组大小,因为这个参数是没有具体大小而言的.


倚天照海花无数,流水高山心自知。
2007-11-20 15:52
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

我说的不太好,

//--------------------------------//
void size(int * p)
{
printf("%u", sizeof p);
// 打印的将是 sizeof(int *)
}


—>〉Sun〈<—
2007-11-20 15:58
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
打印的本来就是sizeof(int *);因为这里p 仅仅是一个地址.

倚天照海花无数,流水高山心自知。
2007-11-20 16:02
快速回复:如何统计数组的长度。。
数据加载中...
 
   



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

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