野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 山外メ雲ジ

【每日一思】考验阅读代码的分析能力

  [复制链接]
发表于 2014-6-27 19:30:50 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2014-6-28 20:54:05 | 显示全部楼层
本帖隐藏的内容
首先是,两者实现的功能是相同的。

前者 代码精简,更加容易看懂(可惜昨天的题目没一个人能完全答对)

后者 代码比较长, 但 减少循环次数,原先前者 while (count)  ,每执行一次,判断一次,而 后者 执行 4次 才 执行一次判断 if (--n4 == 0) ,因而效率更高。

填充0的时候,后缀直接清0 ,而前者 需要从 src 指针 里获取数据,因此也造成前者效率不高的问题。


总的来说,后者 空间换时间,注重 效率。前者 代码精简,容易理解。
回复 支持 反对

使用道具 举报

发表于 2014-6-29 15:09:30 | 显示全部楼层
*fun不懂啊
回复 支持 反对

使用道具 举报

发表于 2014-6-30 15:00:03 | 显示全部楼层
src里不为零的内容放到dest里面。。dest的数长为count。
回复 支持 反对

使用道具 举报

发表于 2014-7-1 13:24:33 | 显示全部楼层
不明白。。。
回复 支持 反对

使用道具 举报

发表于 2014-7-3 22:10:50 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2014-7-3 22:19:03 | 显示全部楼层
强烈支持,非常感谢哥们笑坏我的肚子了走过路过,不能错过比雷公还雷人哦~帅呆了,赞一个
回复 支持 反对

使用道具 举报

发表于 2014-7-3 22:24:44 | 显示全部楼层
看不懂看看
回复 支持 反对

使用道具 举报

发表于 2014-7-11 02:13:16 | 显示全部楼层
复制数组非零并计数!!
回复 支持 反对

使用道具 举报

发表于 2014-7-15 09:07:20 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2014-7-15 20:19:05 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-7-15 23:06:23 | 显示全部楼层
将src所指向的数值赋值给tmp,当遇到第一个0的时候,剩下的*tmp都是0
回复 支持 反对

使用道具 举报

发表于 2014-7-16 23:44:53 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-7-17 09:16:06 | 显示全部楼层
这个主意不错,有助学习
回复 支持 反对

使用道具 举报

发表于 2014-7-17 11:35:25 | 显示全部楼层
来看看答案。。。
回复 支持 反对

使用道具 举报

发表于 2014-7-25 11:05:31 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-7-25 22:12:38 | 显示全部楼层
抢沙发~给哥们顶一个
回复 支持 反对

使用道具 举报

发表于 2014-7-25 22:33:25 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2014-7-28 09:24:28 | 显示全部楼层
首先,这是一个返回char型的指向函数的指针,其接受三个输入参数,第一个是指向char型的指针变量dest,第二个是只想只读型的指向char型的指针变量src,第三个是int型的count;
然后,函数内部定义了一个局部变量---指向char型的指针变量temp,并将输入参数dest值(即地址)赋给tmp,也就是让tmp指针变量指向dest指针变量。
接着,while()循环语句的循环条件是conut不等于0,循环语句里面执行的内容是将src指向的地址里面的内容赋予tep指向的地址里的内容(也就是将src指向的地址里的内容复制到dest指向的地址里的内容了),但是,负值之前还有一个条件,就是*src里面的内容不等于0,如果等于0的话,就不会去执行src++;这条语句了,从而直接跳到tmp++,count--了,注意,在if判断语句里面已经将*src赋给了*tmp了。以此类推,当count自减到0的时候,就会跳出while()循环语句了,然后将dest的地址作为返回值返回。
举个具体例子:当*src = 1230456 , count = 7,那么执行完一次这个函数之后,*dest = 1230000。
哈哈,自己的理解就是这样的,看看答案,有错误的地方再学习!
回复 支持 反对

使用道具 举报

发表于 2014-7-30 15:44:15 | 显示全部楼层
复制固定长度代码
回复 支持 反对

使用道具 举报

发表于 2014-8-6 22:05:30 | 显示全部楼层
复制常量字符指针*src中第一个0前面的数值到*dest,如果count还未减完,则*dest后面的值都复制为0直到count结束。然后函数返回复制后的dest地址
回复 支持 反对

使用道具 举报

发表于 2014-8-7 14:47:49 | 显示全部楼层
dest应该是数组的地址,src是数组的内容,count是数组的长度,检测数组是否有0,有则返回数组地址
回复 支持 反对

使用道具 举报

发表于 2014-8-7 15:48:25 | 显示全部楼层
if里的判断没看懂
回复 支持 反对

使用道具 举报

发表于 2014-8-10 00:07:55 | 显示全部楼层
好好学习下!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2014-8-14 22:27:25 | 显示全部楼层
好好学习,天天向上
回复 支持 反对

使用道具 举报

发表于 2014-8-15 10:14:04 | 显示全部楼层
将src中第一个零之前的数存放在tmp指针指向的内存地址
回复 支持 反对

使用道具 举报

发表于 2014-8-15 13:40:09 | 显示全部楼层
复制count个字符串。
回复 支持 反对

使用道具 举报

发表于 2014-8-15 14:21:18 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-8-18 18:15:54 | 显示全部楼层
还是看看答案吧
回复 支持 反对

使用道具 举报

发表于 2014-8-18 21:41:31 | 显示全部楼层
*tmp = *src  表达式有值, 这个语句是赋值语句,有返回值吗?
回复 支持 反对

使用道具 举报

发表于 2014-8-19 13:48:16 | 显示全部楼层
看答案的。走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-8-19 15:05:00 | 显示全部楼层
这就是一个传递函数啊!!!
回复 支持 反对

使用道具 举报

发表于 2014-9-16 20:40:57 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-9-17 23:33:38 | 显示全部楼层
把src数组的数据复制到dest中,当src数组遇到0时停止复制
回复 支持 反对

使用道具 举报

发表于 2014-9-18 14:50:08 | 显示全部楼层
看看吧 已经很专业了
回复 支持 反对

使用道具 举报

发表于 2014-9-18 18:53:46 | 显示全部楼层
据我分析,是字符串函数strcop()的重现,就是将src字符串复制到desk中
回复 支持 反对

使用道具 举报

发表于 2014-9-18 19:52:04 | 显示全部楼层
将src中的0以前的内容赋给tmp,并最终将其返回
回复 支持 反对

使用道具 举报

发表于 2014-9-19 15:34:34 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2014-9-20 16:15:16 | 显示全部楼层
将src前count个数据复制给dest scr中的等于0的不要
回复 支持 反对

使用道具 举报

发表于 2014-9-21 12:20:13 | 显示全部楼层
分析不出来。。。
回复 支持 反对

使用道具 举报

发表于 2014-9-23 21:33:48 | 显示全部楼层
挺有意思;
我觉得是把 源内存中长度为count的内容拷贝到目标内存,并且只拷贝前面的非零内容,一旦遇到0,目标内存后面的都用0填充
回复 支持 反对

使用道具 举报

发表于 2014-9-24 10:38:19 | 显示全部楼层
将src中非零元素复制到tmp中。
回复 支持 反对

使用道具 举报

发表于 2014-9-24 19:40:09 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-10-2 20:16:19 | 显示全部楼层
分析能力有待提高啊
回复 支持 反对

使用道具 举报

发表于 2014-10-2 23:24:16 | 显示全部楼层
看看答案呢
回复 支持 反对

使用道具 举报

发表于 2014-10-5 19:14:03 | 显示全部楼层
这个题的函数运行后没有意义!函数运行后只返回原来DEST的地址;
回复 支持 反对

使用道具 举报

发表于 2014-10-5 19:17:19 | 显示全部楼层
stzkl 发表于 2014-10-5 19:14
这个题的函数运行后没有意义!函数运行后只返回原来DEST的地址;

错了,长知识 char *tmp = dest;
回复 支持 反对

使用道具 举报

发表于 2014-10-5 19:22:38 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-10-6 16:50:03 | 显示全部楼层
帅呆了,赞一个帅呆了,赞一个帅呆了,赞一个帅呆了,赞一个
回复 支持 反对

使用道具 举报

发表于 2014-10-7 16:18:21 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-19 15:00 , Processed in 0.100849 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表