野火电子论坛

标题: 【每日一思】考验阅读代码的分析能力 [打印本页]

作者: 山外メ雲ジ    时间: 2013-12-11 00:50
标题: 【每日一思】考验阅读代码的分析能力
出了 每日一题那么久,相信大家的C语言也有了个更加深入的了解了吧?
我们的 题目,呵呵,也出得差不多了,接下来,我们 锻炼一下分析代码的能力!

  1. char *func(char *dest, const char *src, int count)   
  2. {   
  3.     char *tmp = dest;   
  4.         
  5.     while (count) {   
  6.         if ((*tmp = *src) != 0)   
  7.             src++;   
  8.         tmp++;   
  9.         count--;   
  10.     }   
  11.         
  12.     return dest;   
  13. }   

  14. //请解析 上述 代码的执行功能
复制代码
大家认真去思考,直接看答案是 学不到东西的,认真回答一下问题。 这些题目都是 找工作时面试笔试常考的问题,当然,往往是叫你自己写出源代码。

答案依旧回复可见。



作者: manutd    时间: 2013-12-11 02:21
复制部分长度的非0内容?
作者: fire    时间: 2013-12-11 06:51
manutd 发表于 2013-12-11 02:21
复制部分长度的非0内容?

不对哦~
作者: beyoung    时间: 2013-12-11 08:53
我是来看答案的
作者: LIEYING    时间: 2013-12-11 09:20
真棒!!非常感谢
作者: 清柠    时间: 2013-12-11 10:51
看看答案
作者: boyu    时间: 2013-12-11 10:57
看看答案真棒!!非常感谢
作者: Waiting    时间: 2013-12-11 11:28
首先定义了一个函数指针func包含三个参数:返回char型值的指针变量dest,只读型的返回char型值的指针变量src,以及一个int型的变量count。定义了一个局部变量返回char型值的指针tmp并且把dest指针变量付给它。if语句中将指针src指向的内容付给tmp指向的内存单元也就是dest指向的单元。好了至此已经大概明白了。就是将只读数组src的不等于0的内容复制给dest指向的数组。count表示要进行复制并判断是否等于0的总量;将复制好的数组地址返回。
作者: 飞鸿印雪    时间: 2013-12-11 12:36
抢沙发~我来顶楼主的
作者: 山外メ雲ジ    时间: 2013-12-11 13:39
Waiting 发表于 2013-12-11 11:28
首先定义了一个函数指针func包含三个参数:返回char型值的指针变量dest,只读型的返回char型值的指针变量sr ...

漏了个把dest后面的数据清0这个没讲
作者: pizhihui    时间: 2013-12-11 17:00
真棒!!非常感谢
作者: 青苹果    时间: 2013-12-11 17:36
走过路过,不能错过
作者: desire    时间: 2013-12-11 17:41
值得看看。。。。。。
作者: 单身男人    时间: 2013-12-11 22:37
真棒!!非常感谢
作者: 似水流年、    时间: 2013-12-11 22:53
将 src指向的地址中的前 count个不为 0的数据拷贝到 dest地址中
作者: yukaigogogo    时间: 2013-12-12 11:05
把SRC中的值输出到dest直到零
作者: 7318    时间: 2013-12-12 15:41
走过路过,不能错过
作者: sarjet    时间: 2013-12-13 13:35
看答案的...- -
作者: 不良    时间: 2013-12-15 01:41
一直复制,直到第一个0??
作者: 小小单片机0    时间: 2013-12-15 10:38
真棒!!非常感谢
作者: 詹伟彬    时间: 2013-12-15 21:43
count作为while的判断条件,当其值为0时退出循环。
指针tmp初值为dest的值,当*tmp = *src == 0时,*tmp只能得到0。
最后函数返回指针dest
作者: 詹伟彬    时间: 2013-12-15 21:44
詹伟彬 发表于 2013-12-15 21:43
count作为while的判断条件,当其值为0时退出循环。
指针tmp初值为dest的值,当*tmp = *src == 0时,*tmp只 ...

补充一下,0应该是空字符
作者: 寂静的雷声    时间: 2013-12-16 08:31
我认为是计算一个数组中值得和
作者: 火弟    时间: 2013-12-16 08:46
走过路过,不能错过
作者: ♂荻夜    时间: 2013-12-16 13:43
强烈支持,非常感谢哥们
作者: sskkyy    时间: 2013-12-19 14:06
把count个src指针的不等于0的值复制到以dest指针为起始地址的空间
作者: sskkyy    时间: 2013-12-19 14:07
把count个src指针的不等于0的值复制到以dest指针为起始地址的空间
作者: kermit    时间: 2013-12-21 08:44
看看,指针还真有点搞不明白呢
作者: 蓝白探戈    时间: 2013-12-21 11:58
学习!!!!!!!!!
作者: 蓝白探戈    时间: 2013-12-21 11:59
学习~~~~~~~~~~~~~
作者: 蓝白探戈    时间: 2013-12-21 12:00
学习~~~~~~~~~~~~~
作者: 蓝白探戈    时间: 2013-12-21 12:00
学习~~~~~~~~~~~~~
作者: tsc000    时间: 2013-12-22 10:20
复制字符串

作者: tsc000    时间: 2013-12-22 10:20
复制字符串
笑坏我的肚子了
作者: H.M.S    时间: 2013-12-22 14:24
强烈支持,非常感谢哥们
作者: yyk007    时间: 2013-12-23 09:00
看看答案!
作者: xinxin    时间: 2013-12-25 15:33
从SRC中复制count个字符到dest中
作者: xinxin    时间: 2013-12-25 15:34
从SRC中复制count个字符到dest中,不知道是否对,蒙的笑坏我的肚子了
作者: 山外メ雲ジ    时间: 2013-12-25 15:37
xinxin 发表于 2013-12-25 15:34
从SRC中复制count个字符到dest中,不知道是否对,蒙的笑坏我的肚子了

漏了 后面 清 0操作
作者: 爱神风玲-★    时间: 2013-12-26 15:14
强烈支持,非常感谢哥们
作者: 雪岭上的红松    时间: 2013-12-28 08:21
这个学习一下
作者: L.J.Lay    时间: 2013-12-30 15:40
复制数据,count位?   
作者: flr    时间: 2014-1-3 08:59
最近总有很多的内容不知道
作者: flr    时间: 2014-1-3 09:02
非常感谢,看来要好好看看C语言了
作者: Wangyan    时间: 2014-1-3 09:15
拷贝字符串并后附0,如果原字符串为空,则复制count个0
作者: Hanking    时间: 2014-1-4 08:36
来看答案                        
作者: 雪域1号    时间: 2014-1-4 11:06
把src的值付给dest,并把dest值返回

作者: billy226    时间: 2014-1-4 20:07
抢沙发~给哥们顶一个
作者: inhobbk    时间: 2014-1-5 21:44
看帖不回者 么有小JJ.........

作者: www12www    时间: 2014-1-6 20:18
返回字符串中相同的字符
作者: michael    时间: 2014-1-7 10:17
比较字符,不相同的时候返回地址
作者: 75234111    时间: 2014-1-7 14:32
走过路过,不能错过走过路过,不能错过走过路过,不能错过走过路过,不能错过
作者: 75234111    时间: 2014-1-7 14:33
走过路过,不能错过走过路过,不能错过走过路过,不能错过走过路过,不能错过
作者: 正好五个字    时间: 2014-1-7 20:24
强烈支持,非常感谢哥们
作者: feodora    时间: 2014-1-8 00:14
将的src地址内容赋值给dest地址内容
作者: feodora    时间: 2014-1-8 00:15
将src地址所指向内容总共count个值赋值给dest地址内容
作者: ajungle    时间: 2014-1-8 23:25
走过路过,不能错过
作者: |~~練^習_.    时间: 2014-1-8 23:31
回复看答案回复看答案回复看答案
作者: yangbo09    时间: 2014-1-9 09:59
学习一下,强烈支持,非常感谢哥们
作者: yangbo09    时间: 2014-1-9 09:59
学习一下,强烈支持,非常感谢哥们
作者: athena    时间: 2014-1-9 11:27
是不是把src的,长度为count的,内容复制到dest里去?如果src里有等于0的内容,那么从这个0开始,到最后count=0跳出循环,dest里都是0?学习一下~
作者: jerry_sun    时间: 2014-1-13 08:50
路过,看看
作者: Mr._Helper    时间: 2014-1-14 11:16
去掉dest里面计数在count之前的0  复制到src里面

作者: hxfxt    时间: 2014-1-15 15:39
看看和自己的思路一样不.........
作者: xzq0125    时间: 2014-1-15 23:23
帅呆了,赞一个
作者: mg坏坏    时间: 2014-1-18 08:32
把指向*src的数值赋给指针*tmp  指导*src指向的数组结束 因为数组结尾是以0为结尾的 当然还有一个条件 就是count不为零
作者: 浪花    时间: 2014-1-18 15:59
路过,看看
作者: yjj    时间: 2014-1-18 23:40
真难  笑坏我的肚子了
作者: @北极星    时间: 2014-1-19 16:42
把src中前count个字符付给dest,并返回
作者: 陆伟奇    时间: 2014-1-19 22:02
好帖  值得一看
作者: 陆伟奇    时间: 2014-1-19 22:06
为什么回了贴  答案还是隐藏的
作者: jeffrey    时间: 2014-1-19 22:07
在SRC中取count个字符, 如果SRC少于count时候到末尾自动截断
作者: 人间烽火    时间: 2014-1-19 23:47
对对答案javascript:;
作者: wudax    时间: 2014-1-20 23:47
看看答案真棒!!非常感谢
作者: happiness9670    时间: 2014-1-24 10:55
抢沙发~给哥们顶一个抢沙发~给哥们顶一个强烈支持,非常感谢哥们
作者: 新月    时间: 2014-1-25 10:46
看看,指针不大会
作者: 新月    时间: 2014-1-25 10:47
看看,指针不大会
作者: q1522834810    时间: 2014-2-11 20:56
走过路过,不能错过
作者: 坚持    时间: 2014-2-14 16:49
char *func这个看不懂要怎么解释,但知道他是个函数,难道叫指针函数?然后在这个函数里面定义一个char型的指针变量tmp。同时将型参dest的地址付给tmp。在主循环里面,关于(*tmp = *src) != 0也不懂是什么意思。 应该是判断是否为0,不为0依次将src和tmp指向的地址加1,同时将src指向的地址中的值赋给tmp指向的地址的空间。然后coumt的作用应该就是个标示符的作用吧。就是给定这个循环里面有count个地址的意思吧。所以这段代码的意思应该是将一段内存复制给另一段内存中去。或者是数组复制到另个数组去。是这样吗?火哥。同时想问火哥char *func这个是什么意思,这是函数,该怎么理解这种类型的函数?
作者: 坚持    时间: 2014-2-14 16:51
坚持 发表于 2014-2-14 16:49
char *func这个看不懂要怎么解释,但知道他是个函数,难道叫指针函数?然后在这个函数里面定义一个char型的 ...

发错了,想发到上一个一天一提那里去的
作者: 坚持    时间: 2014-2-14 16:51
坚持 发表于 2014-2-14 16:49
char *func这个看不懂要怎么解释,但知道他是个函数,难道叫指针函数?然后在这个函数里面定义一个char型的 ...

发错了,想发到上一个一天一提那里去的
作者: Macintosh    时间: 2014-2-14 23:43
学习学习
作者: Macintosh    时间: 2014-2-14 23:44
学习学习
作者: Macintosh    时间: 2014-2-14 23:44
学习学习
作者: 箫剑酒仙    时间: 2014-2-15 22:09
将src中前count个字符赋给dest,直到src字符串结束即出现'\0'
作者: 可爱的深蓝    时间: 2014-3-2 16:37
学习中~~~~~~~~~~
作者: tjx_24    时间: 2014-3-2 21:17
估计这题,蒙对的是不少,但真正理解的,估计极小部分
作者: xzx0330    时间: 2014-3-3 09:45
果断mark下
作者: paul_he    时间: 2014-3-6 14:35
太难了,不懂啊,
作者: 北方小榕树    时间: 2014-3-6 18:51
看不懂这代码的作用!有点悲剧
作者: shengliangcumt    时间: 2014-3-8 14:11
复制代码  顶顶顶顶顶顶
作者: 潘建伟    时间: 2014-3-10 13:41
我看看答案是啥啊?
作者: loliweiv    时间: 2014-3-10 13:45
難度不小哦,看了半天沒看懂。。。
作者: 红旗仔    时间: 2014-3-11 20:08
只为了看答案
作者: TsingMean    时间: 2014-3-14 09:18
走过路过,不能错过
作者: 抱冰    时间: 2014-3-14 21:12
帅呆了,赞一个
作者: 林小鱼275    时间: 2014-3-15 00:48
一知半解 看看答案
作者: yeahyouxiang    时间: 2014-3-15 09:33
笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了
作者: 532902675    时间: 2014-3-15 11:05
这个还真不清楚
作者: 独领风骚    时间: 2014-3-19 02:49
强烈支持,非常感谢哥们




欢迎光临 野火电子论坛 (https://www.firebbs.cn/) Powered by Discuz! X3.4