社区
C语言
帖子详情
求一关于数组的函数
nowfox
2003-08-20 11:04:54
小弟刚学C,请问有没有返回一个数组有多少元素的函数,就像VB里的UBound()
若有,望告知;
若没有,望哪位大虾帮忙写一个。
在下先谢过。
...全文
38
8
打赏
收藏
求一关于数组的函数
小弟刚学C,请问有没有返回一个数组有多少元素的函数,就像VB里的UBound() 若有,望告知; 若没有,望哪位大虾帮忙写一个。 在下先谢过。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cccloveyf
2003-08-20
打赏
举报
回复
如果是刚才楼主说的这种:
在用数组之前我当然会指明维数的,但假如用
char c[]={"I am happy"};
就用这个来算算也不错。
情况,由于是指定了字符数组,所以就好判断多了,就用'\0'来做标记,用一个循环就出来了。
:)
cccloveyf
2003-08-20
打赏
举报
回复
C++标准库里的提供的vector类倒是提供了一种替代,其中“对象.size()”能够返回其长度,但是要是字符串的话返回“长度-1”,其中'\0'没有算。
呵呵,要是C嘛,就得自己写一个了。
oopig
2003-08-20
打赏
举报
回复
补充说明一下,我上面说的“没有”是针对一般情况,即动态数组的情况。对于静态数组,把它写出来的时候就知道它的大小了,所以讨论如何获得静态数组的长度没有什么意义。
nowfox
2003-08-20
打赏
举报
回复
呵呵,谢谢两位的解答,这个问题来自我做网页(ASP的),要判断用户到底选了几项,之前我不可能预知,但可用UBound()即可。现在我开始转学C,在书上没有看到这个函数,于是就问问啦。
在用数组之前我当然会指明维数的,但假如用
char c[]={"I am happy"};
就用这个来算算也不错。
oopig
2003-08-20
打赏
举报
回复
答案是:没有。
不过有一个替代的办法,在数组的最后一个元素放上一个特殊的标记,读到这个标记的时候就知道数组结束了。
举个例子:
int age[] = {10, 20, 16, 40, 29, -1}; /* -1是特殊标记,表示数组结束 */
int get_size(int age[]) /* 利用结束标记计算数组长度 */
{
int count = 0;
while (age[count] != -1)
count++;
return count;
}
aflyinghorse
2003-08-20
打赏
举报
回复
int a[] = {0,1,2};
sizeof(a) / sizeof(a[0])的值为3
把数组作为参数是不正确的。
下面的函数不正确,它的返回值为1
因为它被编译器看作int arraySize(int *a);
其中参数 int *a 指向数组第一个元素,
所以sizeof(a)为指针大小4,而sizeof(a[0])为整形大小4
因此结果是1
int arraySize(int a[])
{
return sizeof(a) / sizeof(a[0]);
}
bgu
2003-08-20
打赏
举报
回复
我对C也不是很熟。
只知道C++里有size(),在C里没有。
不过楼主如果要的话可以用个循环可以解决吧。关键字是\0
还有,请问楼主,你的数组不定义大小也可以用的么?
晨星
2003-08-20
打赏
举报
回复
int a[] = {……};
int size = sizeof(a) / sizeof(a[0]);
只能用于静态数组,而且作为指针传入函数就不灵了。
不过除了上面这种情况外,在C里,不管是动态数组还是静态数组,都需要明确指定维数的,难道你自己不知道你自己数组的维数吗?为什么非要到时候临时算呢?
mysql
数组
函数
_mysql
数组
函数
知识讲解
MySQL中有很多功能强大的
函数
,下面为您介绍的
函数
mysql_fetch_array()属于MySQL
数组
函数
,如果您对此感兴趣,不妨一看。MySQL有一类独特的
函数
,称为MySQL
数组
函数
,下面为您介绍的就是其中的My...
php
数组
函数
大全
一、
数组
操作的基本
函数
数组
的键名和值 array_values($arr);获得
数组
的值 array_keys($arr);获得
数组
的键名 array_flip($arr);
数组
中的值与键名互换(如果有重复前面的会被后面的覆盖) in_array("apple",$arr...
PHP
数组
函数
和字符串
函数
(一)PHP核心
数组
函数
与
数组
索引与值相关的
函数
1、array_keys():把
数组
的索引下标合并到一个新
数组
中; 2、array_values():把
数组
的值合并到一个新
数组
中; 与数据结构相关的
函数
3、array_shift():把...
c语言中如何返回一个
数组
函数
比如,定义一个
函数
,申请一定长度的整型动态
数组
,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。 代码可以写成如下形式: int *int_array_create(int n)//参数n为
数组
元素个数 { int *r;
C语言自定义
数组
函数
自定义
数组
函数
strcmp #include<stdio.h> int main() { int mystrcmp(char a[], char b[]); char str1[] = "123", str2[] = "1234"; int z; z = mystrcmp(str1, str2); printf("%d\n", z); return...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章