想自学C++,请问我应该从哪里开始学??
我是一名女生,去年毕业的,现在在从事文职方面,感觉太无聊了,更重要的是,感觉这样做下去也不会有什么前途,想转行从事软件方面,但是软件方面我只学过一些C,没有接触过C++,...
我是一名女生,去年毕业的,现在在从事文职方面,感觉太无聊了,更重要的是,感觉这样做下去也不会有什么前途,想转行从事软件方面,但是软件方面我只学过一些C,没有接触过C++,请各位大侠给小女子一点建议,感谢!!
展开
11个回答
展开全部
很多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一下,开始运行你的系统。
标准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一下,开始运行你的系统。
展开全部
当然,C + +,VC + +下的Win32和MFC编程,游戏的重点win32编程,还要了解系统知识,和图形知识。国内的书太粗糙,依赖于外国人,很细腻。先来介绍一些VC的书车窗编程“windows核心编程,这两个都是国外的。”门外汉MFC Win32多线程程序设计“三国内的”COM原理与应用“,这些是主要的VC知识模块,VC + +的基础并不牢固,没有游戏程序。特别是3D游戏的开发。本书是关于游戏显卡,支持DirectX 9.0 3D游戏开发编程基础“,或者去搜索视频教程”历奇教育“这个网站是出售各种游戏开发,但价格太贵了,我祝你好运。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
理论扎实 多写代码 多看代码 多思考 参加项目 积累经验 C++深入学习 很复杂 必须有一个方向 但基础一定要牢固 初学可以看看C++ Primer Plus 很详细 但得慢慢啃 上手了 就看一些 C++编程思想 算法基础 数据结构 数据库之类的 总是真正掌握需要不懈的坚持 最重要的是你要确保能长期热爱这行 程序员得不断学习 没有热情是很难坚持的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++是面向对象的语言,如果你的c语言学的很扎实,那学c++困难会小一点,如果连指针啥的都没搞懂,建议还是温习c语言,否则学c++也没啥用了,我就是先学c++,老师还鼓吹c++比c高一个层次,结果指针,数组,结构啥的都还是模糊的,就直接面向对象了。。。。虽然考试80+,但是连个小程序都无法独立完成。结果我好好静下心来重新看c语言绿皮书才慢慢知道个所以然,虽然还是个只会看书码代码的码农。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得一本简单的C++入门书再加一本上机实验解析书,多敲敲代码,入门快,然后再好好看
追问
比如什么入门书??
追答
e....随便什么。。。反正别看C++Primer。。。只要C++书前面都会说些基本知识的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重头开始看吧,基本和C是差不多的。注意多编程,多思考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询