想自学C++,请问我应该从哪里开始学??

2025-01-01 10:12:34
推荐回答(6个)
回答1:

很多c语言的初学者可能会碰到很多问题,最大的问题是没有经验,也不知从何提高,根据我多年的经验和给别人面试的结果看,很多人的问题都在于语法不熟练,没有经验。
标准C语言语法其实并不多,但是很多c编译器为了实际工作中需求增加了很多新特性,这些对于已开始,并不需要掌握。
1,c语言的变量。对于变量很多人都知道,只要学过的,都很清楚是怎么回事。但是对于变量在实际运行中的分配空间并不知道,如char一个字节,int 4字节,short 2字节,并且在不同的操作系统下会有些许差异。另外指针一般都是4个字节。
同样的道理,变量的类型就是和分配空间密切相关的。要掌握(强行)类型转换的本质,我想你一定知道了,对了,无非是访问空间不同了。值呢?
地址对齐,align关键字,为了更快速访问存储器。和大小端一样这是和存储器相关的,当然也和cpu相关。
2,指针。这个是最头疼的问题,也是常常理解不深刻的问题。其实指针就是地址,为了方便和节省空间,我们定义一个指针,让他指向我们想访问的地址,然后操作。指针也是有类型的,通常我们定义和要访问变量相同的类型。
3,函数。函数就是功能代码,对变量进行操作,变量对应的就是你要访问的对象,最终都是写到计算机的寄存器中的。所以需要对计算的芯片的寄存器(功能)需要比较好的理解。如intel8086系列的一些寄存器,如何使用就需要看相关的spec.基本的功能就是,给出你要访问的地址,然后向该地址读写值。
好好的谢你的printf()函数,这个函数可以告诉你很多,如sizeof(long),你知道这个值么?
4,流程。很重要的一点就是思路,流程。其实看一规范,读一份spec.很简单。关键是你如何把spec上所标示的功能写成代码。这就需要思路,这是最基本的。
其实也很简单,只要找对地址,然后向地址写你想要的功能(spec)。
5,存储器。cpu之外的所有的设备都可以没有,但是存储器不能没有。小到寄存器,达到硬盘。对存储器的理解很重要。其实没有什么重要的。就是存储数据和代码的地方。cpu会从存储器中去取指令和数据。所以对存储器要了解,了解基本结构,设计原理,如果可能的话了解一些简单的时序图和原理图。最基本如PN节,单位存储单元,菊花链等等。
除此之外,对于通常的文件系统也要了解,一般入fat,ext2,cdfs,ntfs等要了解一下。这个有助于了解存储器是如何被管理的。文件系统的读写read,write,open close,这些函数是必须的。
内存是一类特殊的存储器。通常只在运行的时候使用,使为了得到更好的性能。内存中有一个概念,其实是操作系统的叫地址重映射,因为在外存上的地址和内存中的地址可能不一样。这就需要地址重映射。可以回去看一下操作系统的课本。
另外对于内存的分配malloc free等等函数要掌握。
6,引导。只有一句话,把你要的代码放在特定的地方,然后引导程序会将你的代码copy到内存然后remap一下,开始运行你的系统。

回答2:

当然,C + +,VC + +下的Win32和MFC编程,游戏的重点win32编程,还要了解系统知识,和图形知识。国内的书太粗糙,依赖于外国人,很细腻。先来介绍一些VC的书车窗编程“windows核心编程,这两个都是国外的。”门外汉MFC Win32多线程程序设计“三国内的”COM原理与应用“,这些是主要的VC知识模块,VC + +的基础并不牢固,没有游戏程序。特别是3D游戏的开发。本书是关于游戏显卡,支持DirectX 9.0 3D游戏开发编程基础“,或者去搜索视频教程”历奇教育“这个网站是出售各种游戏开发,但价格太贵了,我祝你好运。

回答3:

理论扎实 多写代码 多看代码 多思考 参加项目 积累经验 C++深入学习 很复杂 必须有一个方向 但基础一定要牢固 初学可以看看C++ Primer Plus 很详细 但得慢慢啃 上手了 就看一些 C++编程思想 算法基础 数据结构 数据库之类的 总是真正掌握需要不懈的坚持 最重要的是你要确保能长期热爱这行 程序员得不断学习 没有热情是很难坚持的

回答4:

C++是面向对象的语言,如果你的c语言学的很扎实,那学c++困难会小一点,如果连指针啥的都没搞懂,建议还是温习c语言,否则学c++也没啥用了,我就是先学c++,老师还鼓吹c++比c高一个层次,结果指针,数组,结构啥的都还是模糊的,就直接面向对象了。。。。虽然考试80+,但是连个小程序都无法独立完成。结果我好好静下心来重新看c语言绿皮书才慢慢知道个所以然,虽然还是个只会看书码代码的码农。。。。

回答5:

我觉得一本简单的C++入门书再加一本上机实验解析书,多敲敲代码,入门快,然后再好好看

回答6:

重头开始看吧,基本和C是差不多的。注意多编程,多思考