| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4791 人关注过本帖
标题:自认为基础很好的请进,反正我是不信我学好了helllo word!
只看楼主 加入收藏
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:105 
自认为基础很好的请进,反正我是不信我学好了helllo word!
学C也有10天左右了 以下这几个问题  想了很久 无奈 寻求帮助

1:双层for循环效率问题! 是不是初学不需要考虑 乃至学到后面也不需要考虑?我觉得 无论是外嵌还是内嵌 他们各自的特点都是不可代替的。

2:调用函数问题! 普通函数怎么去调用main()?我用了上千遍指针 依旧如山 惭愧啊

3:内存问题!静态内存、动态内存、栈、堆、内存、相互是怎么联系的? 问的是在计算里的内部操作是怎样进行的 因为我没学过任何计算机基础 内存是什么 也不知道,还有在某些情况下静态内存能否动态化。(大侠们 可以随便用程序举例)

4:指针问题!野指针是不是一定是不好的?能否加以利用?存在野指针的形成机理和 怎么彻底而又简洁的消除这个指针?

5结构体问题!结构体字节 到底是什么,怎么算?求详细计算机内部解释

6:链表问题!学了数组 学了链表觉得二个都是各有所长 但又觉得是鸡肋,大侠们功力深厚 让小弟开下眼界 有没比链表更完善的东西?

7:宏和类与析函数问题!看书真是很难理解入宏怎么就不能操作类的私有数据 茫茫多的问题 第7真是一点都不懂。求高手 详细解答

以上7小问题 算是对学C的总结吧!特跪求Tong详细解答
搜索更多相关主题的帖子: 计算机基础 动态 内存 双层 
2011-08-12 15:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:50 
你这100分不好赚啊~

授人以渔,不授人以鱼。
2011-08-12 15:05
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
帮帮小弟 !感激不尽

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-12 15:08
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:0 
类?确定学的是c?
2011-08-12 15:15
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
确定 !有些不懂得我查了些资料 就出现类这个词了 出现了 总不能无视吧
看的是郝斌的C视频 学的是地摊上买的C自学书
求给施舍点实用的! 你这句 搁谁也不是很懂 面向 是什么

[ 本帖最后由 风生钧起 于 2011-8-12 15:25 编辑 ]

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-12 15:19
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:0 
好吧,类不是c语言里的概念。。。c是面向过程的,不是面向对象的。。。
2011-08-12 15:23
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
再次求果断犀利大神 甩个眼神虐死这7个小问题

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-12 15:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1:双层for循环效率问题! 是不是初学不需要考虑 乃至学到后面也不需要考虑?我觉得 无论是外嵌还是内嵌 他们各自的特点都是不可代替的。

任何算法都是视实际情况而定的,不是算法决定你如何解决问题,而是问题决定你应该采取什么算法。

先看双层循环的机制。所谓循环,是重复动作,就如数人头,手指头点一次是一个动作,有多少个人,就必须点多少次,因此是人头数决定你最少点人头数那么多次,任何人说他有办法不用那么多次就能点出的,必定是骗人。这就是问题决定性。对一个线性序列进行循环,比如统计一个数组的元素个数,就是沿着一维空间计数,元素的个数决定了循环动作的次数,这是最低消耗。双层循环,是对一个二维表格进行遍历,统计每个交叉点的个数,因此仍然是元素的个数决定最低消耗。从数学上就可以知道,一个一维数组可以改用二维数组描述,甚至可以改用三维数组表述,反过来,任何维数的数组,都可以用一维数组来描述。对一维数组的循环,我们称之为的单层循环,双层、多层循环,其实本质上仍然是单层循环,道理如上述。

那么,人家说多层循环影响效率,到底是什么意思呢?事实上,循环动作的次数虽然是固定的,但它未必是每次循环都一帆风顺。在单层循环中,循环执行者(下面称之为指针,相当于你的手指头,它沿着计数对象运动)是一路低头往前走的,它所遇到的阻碍,是每次动作后判断是否应该结束了(即for语句中中间那个判断表达式),这个判断需要花费时间,同时,它要将计数器累进(既最后那个表达式如i++),准备下一次动作的条件,这些动作需要花费时间和资源。单层循环,它每次循环只要做一次这个动作,但双层和多层循环,很显然这种动作次数多了。这是影响效率的原因。用C中的指针,进行循环计数时的便利,其实就是它每次增长幅度是固定的,即低头狠走就是了,完全不顾判断条件,所以显得很快,但现实往往要检测是否越界,此时它就碰到障碍了,有额外的东西要加到头上,它就会慢下来,因此,有人图快用指针,所付出的代价是极为容易越界,一旦判断条件和执行的动作复杂,这种指针代码就非常难以理解。

如果内层循环很短,那么它很短的时间内就要做检测和回归动作,然后要转到外层再做同样的动作,那么在微观机制上,是对效率有影响的,如果计数量非常庞大,这种微细影响积累起来,就会比较明显。所以,有人就教导,对双层循环,尽量使内层循环的长度加大,外层循环缩短,那么指针顺利行走的时间较多,可以缩短一些时间。这是一种技巧,但其实不起决定性作用,而且它有显著效果的机会也不那么容易碰到,总的说来,在现代计算机硬件条件下,再讲究这种二极管时代的技巧是没有意义了。

逻辑上该怎么循环就怎么循环,首先是你程序的可读性要清晰、容易理解、易于维护,为了那么一丁点细微的效率牺牲清晰性是不值得的。对具体的问题,不是任何时候的二维表格都可以被转化成一维线性队列的,比如学生成绩表这样的表格,就确实必须是二维的:你可以把一个学生的姓名、科目、成绩连起来当一个单元,视为一维的,但这样每个单元内部其实有分区,在对内部处理时,还是要做同样的分解动作,故本质上仍然是二维的。这是问题的性质所决定的算法,在系统级别的本质制约之下,所谓的编程技巧都是末技,因此,专家级的程序员都教导我们,不要在原有代码上下修改功夫,宁愿彻底改换系统结构或解题思路,重新编写程序,也不要反复优化具体算法。

[ 本帖最后由 TonyDeng 于 2011-8-12 15:46 编辑 ]
收到的鲜花

授人以渔,不授人以鱼。
2011-08-12 15:38
a9517495424
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:305
专家分:139
注 册:2011-7-20
收藏
得分:5 
刚学10天就能有这么多问题,日后必成大器。
2011-08-12 15:40
a9517495424
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:305
专家分:139
注 册:2011-7-20
收藏
得分:0 
   细佬也是自学,如果你想了解计算机编程的可以看看《计算机科学导论中文第9版》,有深度又有难道。
不过认真看,应该也能看明白。
2011-08-12 15:42
快速回复:自认为基础很好的请进,反正我是不信我学好了helllo word!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027803 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved