`
dengyin2000
  • 浏览: 1223889 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

请问我有没有学C的必要

阅读更多
本人在大学里面有学过C(就是谭浩强那本书),但是只学了一些非常简单的东西(类型 操作符 流程控制),指针更本没有接触过, 当时是因为课时不够,老师推脱。毕业后一直从事java方面的开发。对java也是非常感兴趣。收获也不少,但是前几天有个同学(搞。net的)说他想转行搞C++嵌入式。说那个技术更强。而且变化太少,不像java 。net那样天天有那么多东西要学。C++更底层, 技术变更更小。而且能够完全控制操作系统。能使他有满足感。

当然我不会转入C的行列的,因为我喜欢java, j2ee。 但是C一直是我的一块心病,更想揭开指针的神秘面纱。

请大师指点。
分享到:
评论
35 楼 ray_linn 2007-04-18  
除了第一条外,都同意。
34 楼 runes 2007-04-18  
又有人翻老贴, sigh~
现在看看半年前的贴子,真是感觉 自己 写的  真是 @#$@~%$&*~!@$%#

惭愧啊!

Btw:

函数指针一般作为 结构体成员的 方式 比较常见, 同时引起误用相对数组方式而言也较少.
另外, C的精神 之一 就是 相信 程序员.

The Committee kept as a major goal to preserve the traditional spirit of C. There are many facets of the spirit of C, but the essence is a community sentiment of the underlying principles upon which the C language is based. Some of the facets of the spirit of C can be summarized in phrases like
1. Trust the programmer.
2. Don't prevent the programmer from doing what needs to be done.
3. Keep the language small and simple.
4. Provide only one way to do an operation.
5. Make it fast, even if it is not guaranteed to be portable.
The last proverb needs a little explanation. The potential for efficient code generation is one of the most important strengths of C. To help ensure that no code explosion occurs for what appears to be a very simple operation, many operations are defined to be how the target machine's hardware does it rather than by a general abstract rule.
33 楼 simohayha 2007-04-18  
c的声明很简单的。
先括号,再后缀,再前缀.
32 楼 ray_linn 2007-04-18  
抛出异常的爱 写道
jack 写道
ajooTrustno1 写道
你在使用指针的时候,你一定要记住,他指向的东西到底是什么东西,如果你忘记了糊涂了,bug就来了。这就是头痛的地方,如果你能保持清醒的头脑,恭喜你,你是天生的C程序员。呵呵


说的真好,很多指针的bug就是这样来的,指针使用情况混乱,最终变的不可控制.做C/C++开发必须有个自我判断的习惯.

"今天状态是否足够好,头脑是否清醒,如果状态不好,头脑昏昏,那么就要停止开发.休息下.然后才能继续".不然bug就会出现一大堆


作java时都要看看是否状态好。。。不然作出N个类之后发现重名了。。。


java或者C#都可以通过编辑器和编译器来防止,但很不幸C++不行,每个函数指针指向函数A B C D(假设参数相同),必须要运行时才能发现。

我的好习惯是列表来记忆,要用的时候就抽卡片出来。

我用函数指针的机会不多--刻意的,不知道是高手还是低低手?
31 楼 抛出异常的爱 2007-04-18  
jack 写道
ajooTrustno1 写道
你在使用指针的时候,你一定要记住,他指向的东西到底是什么东西,如果你忘记了糊涂了,bug就来了。这就是头痛的地方,如果你能保持清醒的头脑,恭喜你,你是天生的C程序员。呵呵


说的真好,很多指针的bug就是这样来的,指针使用情况混乱,最终变的不可控制.做C/C++开发必须有个自我判断的习惯.

"今天状态是否足够好,头脑是否清醒,如果状态不好,头脑昏昏,那么就要停止开发.休息下.然后才能继续".不然bug就会出现一大堆


作java时都要看看是否状态好。。。不然作出N个类之后发现重名了。。。
30 楼 ray_linn 2007-04-18  
bigpanda 写道
指针难个屁,根据我以前教学经验,一天搞定,再练习两天,主流用法三天精通。一个简简单单的东西给一帮庸师搞得没必要的复杂。

当然下列用法还是有点挑战难度的:

char *(*c[10])(int **p);

来到C++圈子吧,我们教你。



这个一点都不难,(*C[10]) 是函数指针数组,char* 返回参数,int **P 输入参数,跟着括号走就对了。


是哪个家伙故意不用typedef的,而且还用了c p这些毫无意义的名字,晚上开会批评一下.


C困难的地方是...你必须记得(*c[0]) (*c[1]) (*c[2])到底是干啥的...否则你就是自己挖坑自己埋.

不到万不得已,别没事申明堆函数指针来玩。
29 楼 spinach 2007-04-18  
runes 写道
dengyin2000 写道
本人在大学里面有学过C(就是谭浩强那本书),但是只学了一些非常简单的东西(类型 操作符 流程控制),指针更本没有接触过, 当时是因为课时不够,老师推脱。毕业后一直从事java方面的开发。对java也是非常感兴趣。收获也不少,但是前几天有个同学(搞。net的)说他想转行搞C++嵌入式。说那个技术更强。而且变化太少,不像java 。net那样天天有那么多东西要学。C++更底层, 技术变更更小。而且能够完全控制操作系统。能使他有满足感。

当然我不会转入C的行列的,因为我喜欢java, j2ee。 但是C一直是我的一块心病,更想揭开指针的神秘面纱。

请大师指点。



哥们,如果你J2EE一直都做的挺好的话,真的没有必要转过来做C 和 C++,做C 和 C++ 也没啥令你羡慕的。

如果真的要做嵌入式的话,很多在做上层应用时基本不会考虑的硬件问题也会接踵而来,变化也不小。

C++有什么底层的? 没有操作系统的支持,啥也玩不转,何谈能完全控制操作系统???

C++技术变更小吗? better c 到 模板 到boost,哪个我都不认为比掌握一个J2EE的框架来的简单。
而且,各个平台各个编译器各个厂商都有一套,够折腾的。

说到满足感,不知道是啥意思?
如果仅仅是智力上的挑战,那c++以外的好玩的东西多了去了,干吗非的在c++上较劲呢?
c++里面智力上的挑战好多都是折腾编译器的玩意,实用性相当有限,如果真用到工作中迟早自己砸自己的脚。

另外,真的不知道你说的“更想揭开指针的神秘面纱。”是何意思,指针有啥神秘的? 何必把没有掌握它当作
一块心病呢?











   
28 楼 spinach 2007-04-18  
xin_wang 写道
bigpanda 写道
runes 写道
bigpanda 写道
指针难个屁,根据我以前教学经验,一天搞定,再练习两天,主流用法三天精通。一个简简单单的东西给一帮庸师搞得没必要的复杂。

当然下列用法还是有点挑战难度的:

char *(*c[10])(int **p);

来到C++圈子吧,我们教你。



这个不难吧,偶试答一个,错了请指教!

这是一个函数指针数组,size为10,名字为c,
所指的函数类型为: 返回类型为 char*,参数为 int**p



厉害厉害,加入C++圈子吧。

今天在论坛里瞎逛看到这个帖子,居然一下子就看懂了这个声明,难道是突然变成“天生能理解指针概念”的人了? 


楼上的可真幽默
 
27 楼 xin_wang 2007-04-18  
bigpanda 写道
runes 写道
bigpanda 写道
指针难个屁,根据我以前教学经验,一天搞定,再练习两天,主流用法三天精通。一个简简单单的东西给一帮庸师搞得没必要的复杂。

当然下列用法还是有点挑战难度的:

char *(*c[10])(int **p);

来到C++圈子吧,我们教你。



这个不难吧,偶试答一个,错了请指教!

这是一个函数指针数组,size为10,名字为c,
所指的函数类型为: 返回类型为 char*,参数为 int**p



厉害厉害,加入C++圈子吧。

今天在论坛里瞎逛看到这个帖子,居然一下子就看懂了这个声明,难道是突然变成“天生能理解指针概念”的人了? 
26 楼 林秋枫 2007-04-18  
我也有楼主一样的疑问。
25 楼 ozzzzzz 2006-12-02  
刑天战士 写道
要是连指针都不懂,恐怕有必要,指针很重要的……

我是从汇编入门编程的,说实在话,现在我对指针也不是很明白,而且是愈来愈不明白。
24 楼 jack 2006-12-02  
ajooTrustno1 写道
你在使用指针的时候,你一定要记住,他指向的东西到底是什么东西,如果你忘记了糊涂了,bug就来了。这就是头痛的地方,如果你能保持清醒的头脑,恭喜你,你是天生的C程序员。呵呵


说的真好,很多指针的bug就是这样来的,指针使用情况混乱,最终变的不可控制.做C/C++开发必须有个自我判断的习惯.

"今天状态是否足够好,头脑是否清醒,如果状态不好,头脑昏昏,那么就要停止开发.休息下.然后才能继续".不然bug就会出现一大堆

23 楼 jigsaw 2006-12-02  
c is an array of pointer to a function which takes a pointer to pointer to int as param and returns a pointer to char
22 楼 bigpanda 2006-12-02  
runes 写道
bigpanda 写道
指针难个屁,根据我以前教学经验,一天搞定,再练习两天,主流用法三天精通。一个简简单单的东西给一帮庸师搞得没必要的复杂。

当然下列用法还是有点挑战难度的:

char *(*c[10])(int **p);

来到C++圈子吧,我们教你。



这个不难吧,偶试答一个,错了请指教!

这是一个函数指针数组,size为10,名字为c,
所指的函数类型为: 返回类型为 char*,参数为 int**p



厉害厉害,加入C++圈子吧。
21 楼 tsinan 2006-12-01  
bigpanda 写道
指针难个屁,根据我以前教学经验,一天搞定,再练习两天,主流用法三天精通。一个简简单单的东西给一帮庸师搞得没必要的复杂。

当然下列用法还是有点挑战难度的:

char *(*c[10])(int **p);

来到C++圈子吧,我们教你。



这样的代码出现在我们的程序里,是要被打pp的。怎么维护呀~~
20 楼 tsinan 2006-12-01  
我想还是有必要学一下C的。

我以前也是接触JAVA比较多,基本上没用过C(除了在大学读数据结构的时候看过一阵),现在做了3个多月C,补充了n多知识(都是些做JAVA碰不到的,但是又总感觉绕不开的东西,包括一些概念),现在感觉对JAVA认识也比以前深刻了一些。

汇编,我想也是有必要学习一下的。至少能读懂简单的汇编程序吧。

19 楼 blueoxygen 2006-12-01  
要搞底层不如更直接,读汇编去,当时学的时候那才感觉到,计算机一点儿都不聪明,它不为你做任何事,需要你为他做所有事~~~~
18 楼 runes 2006-12-01  
sevenbamboos 写道
写那么多星星干吗?typedef哪里去了?


还没有多到需要使用typedef得程度吧,稍微熟悉一点的看一眼就知道了。

复杂点的,才用的着typedef。
17 楼 sevenbamboos 2006-12-01  
写那么多星星干吗?typedef哪里去了?
16 楼 runes 2006-12-01  
bigpanda 写道
指针难个屁,根据我以前教学经验,一天搞定,再练习两天,主流用法三天精通。一个简简单单的东西给一帮庸师搞得没必要的复杂。

当然下列用法还是有点挑战难度的:

char *(*c[10])(int **p);

来到C++圈子吧,我们教你。



这个不难吧,偶试答一个,错了请指教!

这是一个函数指针数组,size为10,名字为c,
所指的函数类型为: 返回类型为 char*,参数为 int**p



相关推荐

    C语言实践的心得体会.doc

    通过这次C语言的实践学习,我有以下几点深刻的体会。 首先,实践是学习C语言的关键。理论知识虽然重要,但只有通过编写代码、运行程序和调试错误,我们才能真正理解和掌握C语言。在实践中,我们面对陌生的概念和...

    《你必须知道的495个C语言问题》

    《你必须知道的495个C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 -----------------------------------------------------------------------...

    你必须知道的495个C语言问题

    1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 1.4 新的64位机上的64位类型...

    Qt实现简单的C/S架构

    在IT领域,C/S(Client/Server)架构是一种常见的分布式应用设计模式,它将应用程序分为两个部分:客户端(Client)和服务器端(Server)。客户端通常处理用户交互,而服务器端则提供数据处理和服务。本项目利用Qt...

    NullOS:NullOS:我有~~没有~~我在做什么

    7. **Bootloader 开发**:启动加载器是操作系统启动的第一部分,负责加载内核到内存并初始化必要的硬件。NullOS 的开发可能涉及自定义 bootloader 来启动操作系统。 从文件名 "NullOS-NoolOS-SOARE" 看,这可能是...

    unit航空服务英语PPT教案学习.pptx

    9. **help … with** - 在…帮助下:为乘客提供必要的协助。 10. **trouble** - 惹麻烦:乘客可能遇到的问题或困扰。 【Words Study】部分强调了这些词汇的记忆和理解,例如: 1. **row** - 一排 2. **ticket** - ...

    STC89C52RC单片机开发板PDF原理图.zip

    STC89C52RC开发板则是为了方便开发者进行程序编写、调试和学习所设计的平台,它包含了必要的外围电路和接口,使得用户能够快速上手并进行项目开发。 首先,我们要理解STC89C52RC单片机的核心特性。它基于MCS-51内核...

    uc-os-ii-2.89 for lcc-win32

    描述中的“看标题就知道了吧,不知道有没有人和我有一样的爱好”暗示了这个项目可能来自于个人爱好者或开发者社区,分享他对μC/OS-II移植工作的成果,期待与有相同兴趣的人交流。 标签 "我把之前的移植更新到了...

    txwb_iperf,局域网测速工具服务端和客户端

    天下网吧手机APP,你有我有全都有工具说明: 网吧局域网测速目前在网维工作中比较重要,特别是最近2.5G网吧局域网方案大热门,很多网吧需要在测试后对比测试前网速有没实质的提升。 这个时候用txwb_iperf工具很有...

    三年级英语下册Unit6HowMany第6课时作业人教PEP版202004052122

    正确顺序应为:C. twenty, H. nineteen, G. eighteen, F. fifteen, D. fourteen, E. twelve, B. thirteen, A. eleven。这部分练习旨在训练学生的数字比较和序列理解能力。 第二部分是情景对话的选择题。1. 想知道...

    c#学习笔记.txt

    他们觉得现在的语言太多了,没有必要再多出一种来添乱子。但是当他们看完C#的文档后又开始高兴起来,因为C#是如此简单:事实上,简单正是C#最大的特点。除此之外,它还具有现代、面向对象、类型安全、版本控制、兼容...

    matlab的双曲线代码-CFD-1_2013:计算流体动力学代码

    计算流体动力学代码 该存储库包含一些C ++入门级计算流体力学代码(CFD)。 添加这些代码是为了展示一些良好的功能,例如管道,从而将绘图直接输出到GN​​Uplot。 这些代码更符合函数式编程方法,并且将输出网格...

    药店销售社会实践报告.doc

    作为一名药店助手,我主要的工作是打扫卫生、整理药品、接待顾客,以及在必要时提供一些基础的医药咨询。这些看似简单的工作背后,蕴含着对服务态度和专业知识的高要求。 首先,良好的服务态度至关重要。顾客在药店...

    人教版pep(三年级起点)(2012教材)小学三上Unit 4 We love animals Period Five同步练习

    这篇内容是关于人教版PEP小学英语教材三年级起点2012版第三册Unit 4 "We love animals" 第五课的同步练习,主要目的是帮助学生巩固本单元所学的动物相关词汇和句型。下面将详细解析这部分练习内容及其相关的知识点。...

    2016七年级语文下册第二单元8少年爱因斯坦同步练习新版语文版

    他可能会说:“因为我的错误和失败会很多,一个大的废纸篓能装下我所有的尝试和错误,让我有更多的空间去尝试新的想法。” 这个练习旨在让学生深入理解文章内容,体会爱因斯坦的成长历程,学习他的求知精神,并通过...

    面试简单自我介绍4篇精选.doc

    4. **计算机技能**:强调计算机知识和应用能力,如"能熟练进行windows98操作,使用c,qbasic等语言编程",并熟悉Office软件,这对于大多数现代工作岗位都是必要的。 5. **组织协调能力与个人品质**:提及在校期间...

    Reversing:逆向工程揭密

    这时候,我逐渐明白这是一种威力强大的技术,因为这意味着不管我有什么样的有关要处理软件的问题,我都可以非常容易地找到答案,即使我没有看过任何相关的文献资料或者正在处理的程序的源代码。本书就是要为每一个对...

Global site tag (gtag.js) - Google Analytics