`
dengyin2000
  • 浏览: 1238276 次
  • 性别: 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语言问题

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

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

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

    Qt实现简单的C/S架构

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

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

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

    基于8051单片机+PROTEUS仿真 C语言程序设计实例源码之- 1602LCD显示的秒表.zip

    在这份文件中,包含了设计秒表的所有源码,以及必要的说明文档和仿真文件。开发者通过这些材料可以详细了解如何实现秒表功能,包括如何使用C语言编写程序来控制1602LCD的显示,如何使用定时器中断来实现时间的测量,...

    基于8051单片机+PROTEUS仿真 C语言程序设计实例源码之-1602LCD显示仿手机键盘按键字符.zip

    PROTEUS则是一款电子仿真软件,能够帮助开发者在没有实际硬件的条件下,对电路和程序进行仿真测试。 本压缩包文件名表明,该资源是一系列的C语言源码,这些源码是为8051单片机编写的,并且借助PROTEUS仿真软件来...

    基于8051单片机+PROTEUS仿真 C语言程序设计实例源码之-DS1621温度传感器实验.zip

    在硬件方面,需要正确连接DS1621传感器与8051单片机之间的通信接口,通常是通过I2C总线或单总线协议。软件编程方面,则涉及对8051单片机的寄存器操作、DS1621的命令集编程以及数据处理等。通过编写程序,可以使...

    2021软件工程系(电气公司)实习总结.docx

    在这一系列的工作中,我有机会将大学期间所学的网络配置、Linux操作系统下的常用命令、数据库管理等理论知识付诸实践,并且在实践中加深了理解。 与此同时,我也认识到了不断学习新知识的必要性。软件工程师的工作...

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

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

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

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

    基于8051单片机+PROTEUS仿真 C语言程序设计实例源码之-按键选播电子音乐.zip

    文件可能包含了电路原理图、PCB布局图、8051单片机程序源码、仿真测试报告以及必要的说明文档。通过分析这些文件,学习者不仅能够理解项目的工作原理,还能够掌握如何运用PROTEUS进行电路设计和仿真测试,以及如何将...

    uc-os-ii-2.89 for lcc-win32

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

    基于8051单片机+PROTEUS仿真 C语言程序设计实例源码之-12864LCD图形滚动演示.zip

    接下来,可以通过阅读源码来理解程序的结构和逻辑,逐步跟随程序进行仿真测试,并在必要时进行修改以适应不同的设计需求。通过不断的实践和调试,学习者将能够获得宝贵的实战经验,为未来在电子工程领域的发展打下...

    2022计算机毕业自我鉴定300字本科范文3篇.docx

    这不仅让我有机会将所学知识应用于实际工作中,而且提升了我解决实际问题和传授知识的能力。这些社会实践经历,让我对计算机科学的应用领域有了更深入的了解,也让我更加明确了自己的职业方向。 总之,大学四年的...

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

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

    基于8051单片机+PROTEUS仿真 C语言程序设计实例源码之-字符液晶显示的频率计.zip

    在PROTEUS仿真环境中,工程师可以先行搭建电路原理图,将8051单片机与LCD以及其他必要的外围电路连接起来。之后,编写相应的C语言程序代码,并将其编译生成机器码。在PROTEUS中加载该机器码,并开始仿真测试,检查...

    三年级英语下册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#最大的特点。除此之外,它还具有现代、面向对象、类型安全、版本控制、兼容...

Global site tag (gtag.js) - Google Analytics