如何统计数组的长度。。
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的长度,用上面的方法,不能得到正确的结果。。。
谁能给我出出主意啊
----------------解决方案--------------------------------------------------------
你的程序只对字符数组有用```
如果是这个数组: A[]={123,456,789}
里面可是没有'\0'``
我的意见是sizeof(A)(貌似写错了``但是就是这个意思)/sizeof(数组类型)
----------------解决方案--------------------------------------------------------
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编辑过]
----------------解决方案--------------------------------------------------------
LZ是对的
----------------解决方案--------------------------------------------------------
sizeof
也不能写进函数。
只能
int ar[5];
printf("%u", sizeof ar); // 这样才能得到数组 ar 的大小(以字节计)
//------------------
void size(int * p)
{
printf("%u", sizeof p);
// 这样打印的只能是 指针的大小(32 位系统为 4字节)
}
int ar[5];
----------------解决方案--------------------------------------------------------
得到字符串的长度是可以的。
得到 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;
}
----------------解决方案--------------------------------------------------------
以下是引用死了都要C在2007-11-20 15:05:00的发言:
你的程序只对字符数组有用```
如果是这个数组: A[]={123,456,789}
里面可是没有'\0'``
我的意见是sizeof(A)(貌似写错了``但是就是这个意思)/sizeof(数组类型)
//这种只对A[]={...}有用,如果是A[MAX].你的还奏效吗?
你的程序只对字符数组有用```
如果是这个数组: A[]={123,456,789}
里面可是没有'\0'``
我的意见是sizeof(A)(貌似写错了``但是就是这个意思)/sizeof(数组类型)
//这种只对A[]={...}有用,如果是A[MAX].你的还奏效吗?
----------------解决方案--------------------------------------------------------
以下是引用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];
sizeof
也不能写进函数。
只能
int ar[5];
printf("%u", sizeof ar); // 这样才能得到数组 ar 的大小(以字节计)
//------------------
void size(int * p)
{
printf("%u", sizeof p);
// 这样打印的只能是 指针的大小(32 位系统为 4字节)
}
int ar[5];
不是不能写进函数,而是两个测试的类型就不同,一个是数组,一个是地址.因为数组参数传递过去就是一个地址.
就是说是不能测试传递过来的数组大小,因为这个参数是没有具体大小而言的.
----------------解决方案--------------------------------------------------------
我说的不太好,
//--------------------------------//
void size(int * p)
{
printf("%u", sizeof p);
// 打印的将是 sizeof(int *)
}
----------------解决方案--------------------------------------------------------
打印的本来就是sizeof(int *);因为这里p 仅仅是一个地址.
----------------解决方案--------------------------------------------------------