A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanggangcl 中级黑马   /  2015-10-26 18:10  /  1353 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组做函数参数时,实参传递的时数组名,也就是个地址,那怎么在函数中求数组长度?只能一个一个元素遍历到最后?

13 个回复

倒序浏览
strlen(数组名)
回复 使用道具 举报

那样只是输出地址的长度,是8呀
回复 使用道具 举报
所以要把数组长度也当做参数传到函数里
回复 使用道具 举报
用指针传递?
回复 使用道具 举报
是                 
回复 使用道具 举报
赞一个,strlen(数组名)是数组长度,不是地址长度
回复 使用道具 举报
strlen(数组名)
回复 使用道具 举报
chensc 金牌黑马 2015-10-27 06:46:10
9#
学习学习!
回复 使用道具 举报
若用数组名作为函数调用时的实参,则实际上传递给形参的是数组首地址!
回复 使用道具 举报
yanggangcl 发表于 2015-10-26 21:16
那样只是输出地址的长度,是8呀

是计算数组的长度,不包含\0的。。。你去看strlen的底层实现代码strlen(const char *); 穿进去的就是指针
回复 使用道具 举报
huangwei 发表于 2015-10-26 21:31
所以要把数组长度也当做参数传到函数里

。。。貌似也是个方法
回复 使用道具 举报
Brisingr 发表于 2015-10-27 22:20
是计算数组的长度,不包含\0的。。。你去看strlen的底层实现代码strlen(const char *); 穿进去的就是指针 ...

好吧,但strlen只适用于字符数组,对int型之类的就不行了
回复 使用道具 举报
这个还真不知道
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马