黑马程序员技术交流社区

标题: 关于数组做函数参数的问题 [打印本页]

作者: yanggangcl    时间: 2015-10-26 18:10
标题: 关于数组做函数参数的问题
数组做函数参数时,实参传递的时数组名,也就是个地址,那怎么在函数中求数组长度?只能一个一个元素遍历到最后?
作者: Brisingr    时间: 2015-10-26 19:44
strlen(数组名)
作者: yanggangcl    时间: 2015-10-26 21:16
Brisingr 发表于 2015-10-26 19:44
strlen(数组名)

那样只是输出地址的长度,是8呀
作者: huangwei    时间: 2015-10-26 21:31
所以要把数组长度也当做参数传到函数里
作者: yuweiyuwei    时间: 2015-10-26 21:37
用指针传递?
作者: liuch111    时间: 2015-10-26 22:20
是                 
作者: MLP1355053753    时间: 2015-10-26 22:30
赞一个,strlen(数组名)是数组长度,不是地址长度
作者: vyqrvwgf    时间: 2015-10-26 22:45
strlen(数组名)
作者: chensc    时间: 2015-10-27 06:46
学习学习!
作者: 开枪吧_Z7K5Z    时间: 2015-10-27 22:08
若用数组名作为函数调用时的实参,则实际上传递给形参的是数组首地址!
作者: Brisingr    时间: 2015-10-27 22:20
yanggangcl 发表于 2015-10-26 21:16
那样只是输出地址的长度,是8呀

是计算数组的长度,不包含\0的。。。你去看strlen的底层实现代码strlen(const char *); 穿进去的就是指针
作者: yanggangcl    时间: 2015-10-27 22:35
huangwei 发表于 2015-10-26 21:31
所以要把数组长度也当做参数传到函数里

。。。貌似也是个方法
作者: yanggangcl    时间: 2015-10-27 22:49
Brisingr 发表于 2015-10-27 22:20
是计算数组的长度,不包含\0的。。。你去看strlen的底层实现代码strlen(const char *); 穿进去的就是指针 ...

好吧,但strlen只适用于字符数组,对int型之类的就不行了
作者: knight_zfh1288    时间: 2015-10-27 23:16
这个还真不知道




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2