C/C++发展小问题

本人是刚刚入门C/C++的,现在主要在做搜索引擎的工作,但是不知道以后技术成熟后能做些什么,另外就是本人希望用工作之余接一些私活赚点外快,但是致力于搜索引擎的研发,以后能接到私活吗?本人是刚入门的,对以后的发展还想多了解些。现在的经济压力大,所以想通过业余时间多干些,如果是一些没用的答案,请不要浪费百度的存储空间,谢谢。

个人认为这是一个很好的文字,说的很清楚:

C是一种结构化语言,如谭父说:“它侧重于算法和数据结构。 C程序设计的首要考虑的是怎么一个过程,来获得输出输入(或环境条件)运算处理(或实现过程(事务)控制),而对于C + +,首要考虑的是如何构建对象模型中,因此这种模式是能够符合相应的问题域,这样你就可以通过对象的状态信息输出或实施过程控制(交易)。

所以C和C + +是最大的区别在于他们的思维来解决问题的方式是不一样的。究其原因,是C + +比C更先进,因为“的设计理念已经被集成到了C + +”,在C中,算法语言本身是更概念化。这是不是C并不重要,错!算法的基础程序设计,良好的设计,没有一个很好的算法,同样不能。此外,“C加上好的设计”也可以写一个非常好的事情。

语言本身,C是C + +的一个子集,那么什么样的一个子集?从上面可以看出,CC + +,实现了过程控制等相关功能,而在C + +中C(我称它为“C +”),相对于原来的C已经加强,重,内联函数,异常处理,所以项目的引进,C + +是面向对象的设计来扩展其内容,如类,继承,虚函数,模板和容器类等。

进一步提高一点,在C + +的数据包,输入的东西是什么新东西,如:选择对象的粒度,界面设计对象和继承,需要考虑结合使用继承等其他问题。

所以相对于在C,C + +包含了更丰富的“设计”的概念,但C是一个C + +的子集,自洽,而且还具有强大的功能,还值得研究。

一些学习建议:

1。基本概念是非常重要的。无论是学习C,或了解C + +的基本概念是第一个,它是比较困难的,但只有在掌握基本概念,才能从总体上把握背景下,居高临下。

2。 C是C + +,是比较容易理解的,其基本理念和设计方法,初学者可以从它开始的一个子集。

3。如果你想学习C + +,最好不要推荐适合初学者使用,如VC,BCB平台编写程序,自动代码生成,丰富多彩的界面,可以让你知道该怎么做。最好先找到一个开放的空间,从点滴做起(UNIX,DOS),写了几个大点的程序,轮数,然后VC,BCB下看,你会很容易。在我看来,对学习C / C + +是成为VC,BCB高手的唯一途径。

4。做不是妄想崩溃,你必须有一个字节,有点拉,揣摩每一个问题。

5。几本书:

机械工业出版社的“计算机科学系列”从C到C + +面向对象的设计,随手可得,都TMD是经典中的经典,价格是公平的,非圆顶欺负。

有几本书,谭父的书都很好,就是太多的错误。清华大学周的英语强烈推荐“现代软件工程”(上,中,下),它是我见过一些好书,精华中的精华,点对点,薄的材料,至少它是国家降龙十八掌级的东西。

如果人们仍然希望学习C / C + +,然后有一些小问题,我很高兴回答,但我想学习C / C + +并不重要,重要的是如何行使你的想法。不要找一些混淆的问题,甚至自己做。

我认为,虽然“谭浩强”同志诈骗的犯罪嫌疑人(我有一个几乎相同的英文书籍),但他把底漆进入中国,所以很多程序员理解C语言,我认为他的功劳也不可磨灭的这本书中的所有例子可用于思考的基石,他的节目给大家做的练习是非常有帮助的,我认为这是值得一买的。例子来思考课后编程很有帮助,你不要小看一个简单的例子,它们是你通往成功的道路。

当你能基本掌握了前面的例子在这本书中,你会发现他们的程序的一些例子看到的。开始读,但如果他们努力工作是没有问题的,当你已经看到了一些很好的例子,你会突然看到了光明,(读了很多的例子程序,是学习C / C + +快捷键)你会发现,你的水平已经显着提高。看例子越多,你在Windows / DOS了解更多。更好看一些有关系统的知识的书籍,他将不得不在你的程序非常有用。

这是我学习C / C + +的经验,我希望我没有害怕,想继续学习C / C + +的朋友有一定的帮助。恐怕有些同志说我破坏中国的软件人才发展。

在最后我祝愿所有坚持学习C / C + +的朋友成功!也感谢阅读我的文章的同志。

想学习C + +,C也不能非学校! ! !

今天我这么肯定了这里的言论虽不是新手落入错误的语言越多,越好,这个话题是不是很严格,但我必须说几句讲,对于C平反! !

C + +和C有什么区别会做什么呢?我们现在一步步来分析

一,阶级,阶层,我并没有说有什么不妥,但对于初学者来说,它是一个负担。类包允许初学者程序产生厌倦,不适和麻烦。

二,引用,引用在C + +最趾高气扬的事情,最好是不要尽可能地使用它,我只是从来没有使用引用,除非万不得已。引用更容易为初学者感到困惑,不知道这是引述,这是变量。

三,函数重载,函数重载初学者学习似乎是没有伤害,但是,这使得C语言初学者潜意识变量类型产生稀释的重要性,记得C语言是最敏感的变量类型,类型在C语言中的变量重要性是不言而喻的。

四,流运营商,同样的道理,所以变量类型的重要性产生淡化,况且,CIN这东西有点不方便,可以让初学者有时会产生奇怪的结果。

五,操作符重载,一个典型的先进应用,初学者可能并不需要所有这些东西会令他们感到,C + +的难,门槛高,不能读......... ....

六,继承,虚函数,一个典型的模仿四不象,这狗屎看起来深奥的东西,除了低..................实用价值。我怎么可能把一个指针到另一个类类型,但不同类型的类的继承关系是实现动态绑定,晕............

..................一些东西,我不会加以评论,如:新建,删除运营商,等等............

7个错误:问题和答案格式:

Q:C + +面向对象和C是面向过程,面向?

答:第二对,错的第一个问题,C + +不完全的面向对象的技术,恐怕只对Java才算得上真正的面向对象的语言。

问:C + +实现的C函数不能做?

答:至少我还没有发现......

问:学习C语言,学习C + +有障碍吗?如程序设计......

答:至少我还没有看到有这种症状。

问:学习C语言,学习C + +你必须重新开始吗?

答:不,C + +下可以实现所有的C语言函数。

问:我完成学校C将肯定需要学习C + +编程?

答:绝对没有必要的。

问:C + +比C好?

答:更一致的软件工程

问:成品学校学习C到C + +是不是很容易吗?

答:这取决于你所学到的是不是真的完成了C语言,我学会了从C到C + +卧床时间的前一个星期读两本书,然后大彻大悟。然后来这里发布一些狗屁文章。

最近看到很多人在网上学习方法,我坚决不同意。很多人想一口吃个胖子,想学习学习最新的,因为如果没有人愿意去学习那些老的,旧的编程语言?但是,你可以学习理解呢?不学习TC2。 0早期优秀的编程语言,你可以了解在VC6。 0?如果你真的可以,我宁愿做你的弟子!奇怪了,谁不明白最基本的语言的人,如何理解那些人可能最新的编程语言?我学到现在,三年的编程。性能不是太多,只有一台电脑和高程证书四卡,但我觉得我学习VC,你不明白有很多。没有人教我要靠自己的,其中包括所有级别,我总是依靠自己,我从来没有报班。学习的VC超过六个月,我想我基本上已经开始,但依然有很多的困惑。刚开始学习VC,正面临着一个项目,我真的很喜欢在一般情况下,触摸四个恐慌,毫无章法,最后几乎勉强算是一个傻瓜。 VC去学校学习其他先进的Windows编程,我觉得它是很容易的,毕竟,在WINDOWS里面的东西很多,可以直接调用由VC,第一件事情,你可以有WINDOWS有了新的认识,你们去学习其他语言不能简单吗?

我的感觉是面向过程和面向对象的,其实非常重要的,在VC仍然会需要的过程中,很多事情都是相互关联的,也没有面向过程思考,如何编程成为可能?更值得推荐的Windows编程的书,但大多数都是比较老的书呦!我仍然记得那天TC编程很难,但我仍然怀念当年的劳动付出,毕竟我得到了我想要得到的一切 - 编程思想。我认为,一个良好的编程思路,比你一定学习好更重要的一种计算机语言。要形成自己的编程风格。在你的心目中,一个好的编程思想一旦形成,什么样的语言将是很容易学的,因为在这个时候,你不会是简单易学,但验证!

参考文献: http://weichy.blogchina.com/2962575.html C语言是结构化和模块化的语言,它是面向过程的。在处理较小的程序,采用C语言的程序员比得心应手。但是,当问题是更复杂的,大规模的计划,结构化程序设计方法将显示其不足之处。 C程序设计者必须仔细设计过程中的每一个细节,准确地考虑程序运行时发生的每一刻,例如,每个变量的变化,应执行的价值如何,当输入在屏幕上应该出口等。这需要程序员是比较高的,如果面临着一个复杂的问题,程序员往往感到力不从心。最初提出的结构化程序设计方法的目的是解决软件设计危机,但这一目标尚未完全实现。为了解决软件设计的危机,在20世纪80年代,面向对象编程(面向对象编程),在这种情况下,C + +应运而生。

C + +完全兼容C C.它也可用于结构化编程的面向对象编程的一个超集,所以它是一个功能强大的混合编程语言。

增强主要表现在两个方面:

1在原有的面向过程的机制,基于C语言的功能做了很多的扩展。
2增加了面向对象机制。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-07
别再纠结这个问题了!
我告诉你正确的答案是:不确定。请避免在程序中使用这样的写法。
凡是给出确定值的都是错误的。
因为这种写法在C99和C++2003里面是“未说明”(unspecified)的,未说明就是没有进行规定,因此不同的编译器会产生不同的结果。
这里面涉及到“序列点”的问题。凡是在一个序列点之前多次修改一个变量都会造成结果的不确定。
我就不细说了,有兴趣可以自己看一下!

补充:标准就是标准,不是某些人觉得是什么样就是什么样的,这些在C99和C++2003标准里面写的都是很清楚的。
建议楼主非要弄明白序列点的话可以看这篇文章:

只记住结论的话也是没问题的!

另外,引用一本书里写的:
以下内容引自《C 语言常见问题集》 原著:Steve Summit 翻译:朱群英, 孙 云
4.3 对于代码 int i = 3; i = i++; 不同编译器给出不同的结果, 有的为 3, 有的为 4, 哪个是正确的?

没有正确答案;这个表达式无定义。参见问题 3.1, 3.7 和 11.32。 同时注意, i++ 和 ++i 都不同于 i+1。如果你要使 i 自增 1, 使用 i=i+1, i+=1, i++ 或 ++i, 而不是任何组合, 参见问题 3.10。

12.35 有人说 i = i++ 的行为是未定义的, 但是我刚在一个兼容 ANSI 的编译器上测试, 得到了我希望的结果。

面对未定义行为的时候, 包括范围内的实现定义行为和未确定行为, 编译器可以做任何实现, 其中也包括你所有期望的结果。但是依靠这个实现却不明智。参加问题 7.4, 11.31, 11.32 和 11.34。

4.2 使用我的编译器,下面的代码 int i=7; printf("%d\n", i++ * i++); 返回 49?不管按什么顺序计算, 难道不该打印出56吗?

尽管后缀自加和后缀自减操作符 ++ 和 -- 在输出其旧值之后才会执行运算, 但这里的``之后"常常被误解。没有任何保证确保自增或自减会在输出变量原值之后和对表达式的其它部分进行计算之前立即进行。也不能保证变量的更新会在表达式 ``完成" (按照 ANSI C 的术语, 在下一个 ``序列点" 之前, 参见问题 3.7) 之前的某个时刻进行。本例中, 编译器选择使用变量的旧值相乘以后再对二者进行自增运算。

包含多个不确定的副作用的代码的行为总是被认为未定义。(简单而言, ``多个不确定副作用" 是指在同一个表达式中使用导致同一对象修改两次或修改以后又被引用的自增, 自减和赋值操作符的任何组合。这是一个粗略的定义; 严格的定义参见问题 3.7, ``未定义" 的含义参见问题 11.32。) 甚至都不要试图探究这些东西在你的编译器中是如何实现的 (这与许多 C 教科书上的弱智练习正好相反); 正如 K&R 明智地指出, ``如果你不知道它们在不同的机器上如何实现, 这样的无知可能恰恰会有助于保护你。

4.7 我怎样才能理解复杂表达式?``序列点" 是什么?

序列点是一个时间点(在整个表达式全部计算完毕之后或在 ||、 &&、 ? : 或逗号 运算符处, 或在函数调用之前), 此刻尘埃落定, 所有的副作用都已确保结束。 ANSI/ISO C 标准这样描述:

在上一个和下一个序列点之间, 一个对象所保存的值至多只能被表达式的计算修改一次。而且前一个值只能用于决定将要保存的值。
第二句话比较费解。它说在一个表达式中如果某个对象需要写入, 则在同一表达式中对该对象的访问应该只局限于直接用于计算将要写入的值。这条规则有效地限制了只有能确保在修改之前才访问变量的表达式为合法。例如 i = i+1 合法, 而 a[i] = i++ 则非法 (参见问题 3.1)。
相似回答