<请教>我学了C语言的基本语法,现在想深入的学习C语言该咋学习? 要学来可以开发windows风格的程序。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了<请教>我学了C语言的基本语法,现在想深入的学习C语言该咋学习? 要学来可以开发windows风格的程序。。。相关的知识,希望对你有一定的参考价值。

RT:就是下来该怎么安排?该看什么书?

然后你可以学习《Windows程序设计》、《MFC Windows程序设计》,当然你也可以学习孙鑫的《深入讲解VC++》和侯捷的《深入浅出MFC》
想做Windows风格的程序,归根结底就是用Windows系统提供的函数,你可以用Win32,也就是完全自己写代码,也可以用MFC,有很多微软写好的贤臣的东西
Windows的基础是C语言,当然用C和WIN32函数写,并不是唯一的方法,不过你有C的基础,当然选这个了,
而想要学习MFC的话,这里先解释一下MFC的含义:微软基础类库。就是说微软已经写了几万行代码,用C++的类把WIN32函数给封装了起来,用起来就方便很多了。至于什么叫封装,又为什么很方便,那就是面向对象的问题了。反正要学习MFC,没有C++的基础是肯定不行滴。
另外你可能在网上看过很多VC++教程什么的,VC++和C++是不一样的。C++是一种语言,VC++是用微软的VC和MFC做程序。
孙鑫的视频我看过一点,讲解还是不错的,至于侯捷的书,就没看过了。国人中,这两个算是大神级别了。
然后如果想要写出真正有用的程序,不论是不是Windows风格的,真正的核心是数据结构和算法,学完一门编程语言,例如C、C++、JAVA等,就可以学习数据结构了。至于算法,我还没有系统的学过算法,不过呢,我们其实早就在考虑算法这个问题了。比如求最大公约数不止一种方法,但是只有一个最合适的(是合适,这个很重要)。针对于特定的问题,究竟改用哪个算法,采用什么样的数据结构,才是最核心的问题。界面,看起来很遥远(对于咱们这种还在CMD窗口纠结的小生来说),但其实界面只是一层外衣,再好看的界面,没有高效、合适的功能,也只是哗众取宠罢了。
再接下来,课程的安排:
1.1、Windows程序设计//MFC固然很好,但是也把原理性的东西给隐藏了,没有WIN32的基础,学起来会很头疼的,结果还是要回过头来补充WIN32.学习的时候,只要能够理解怎样用WIN32写程序,理解基本远离即可。WIN32开发很自由,但是也很累
1.2、数据结构是程序设计的核心,必须要学习
2.1、C++。正如我上面说的,MFC使用C++把WIN32函数封装起来了,想要学习MFC,是必须要学习C++的。其中,类的语法,封装,继承,多态,必须要熟练。其他的,我还没有接触。。。。
2.2、MFC。很多人都说没有学习WIN32也能学会MFC。当然这不是不可能,不过没有基础就学MFC,很辛苦的。除非有高手带你。至于看孙鑫和侯捷,相信很多人都是这么干的,我方正是不行了,你可以尝试一下,但是觉得迷惑的话,千万不要继续下去,否则得不偿失。

最后,你哪个是深入的学习C语言,我的理解就是你想用C语言开发Windows程序了,如果是的话,那么就是我上面说的那些。
C语言可以做的事情实在是太多了,所以选择好方向是很重要滴。

最后的最后,上面每一样东西都不简单,那可比学习C的语法要复杂抽象多了,建议你也补充一下下面的东西:
1、高等数学,离散数学等在编程中需要的数学知识。只要数学好,就能吃遍天下
2、英语。为什么呢?因为那是人家外国人开发的,如果一直看翻译过来的东西,一个是质量无法保证,再有一个是原版的,才是收获最大的
3、其他模式,比如C是面向过程的,接触一下面向对象的,例如C++、JAVA,之所以这样说,是让你有一个比较性的感受。
4、其他系统,例如Linux,也是有一个比较性的认识。比较,才有长短之分。

就这些吧,再说还不如直接发邮件
参考技术A 你可以看看C语言入门经典(第四版)、
《C++ Primer》Lippman
《The C++ programming language》C++的创始人Bjarne Stroustrup写的
Effective C++》 Scott Meyers
《More Effective C++》Scott Meyers
《Advanced C++》
参考技术B C++高级编程

MFC追问

不是C++
指想学纯正的C。。。。

追答

你研究下MFC

我觉得还可以。

C的话不太懂

为了写中秋这篇文章,我学了 20 种编程语言!

为了给大家送中秋祝福,老哥也是绞尽脑汁了啊,最后想出了用排行榜前 20 名的编程语言输出中秋快乐这种方式!

首先来看下 9 月编程语言排行!

技术分享图片

排行榜来自 TIOBE 2018.09

虽然这些语言大部分我都不会,但为了给大家送中秋祝福,我豁出去了,决定撸起键盘就是干!!!

1.Java


System.out.println("Java技术栈祝大家中秋快乐!");

2.C


printf("Java技术栈祝大家中秋快乐!");

3.Python


print "Java技术栈祝大家中秋快乐!"

4.C++


cout << "Java技术栈祝大家中秋快乐!";

5.VB.NET


Console.WriteLine("Java技术栈祝大家中秋快乐!")

6.C#


System.Console.WriteLine("Java技术栈祝大家中秋快乐!")

7.PHP


echo "Java技术栈祝大家中秋快乐!";

8.Javascript


alert("Java技术栈祝大家中秋快乐!")

9.SQL


select ‘Java技术栈祝大家中秋快乐!‘

10.Objective-C


NSLog(@"Java技术栈祝大家中秋快乐!");

11.Delphi


ShowMessage(‘Java技术栈祝大家中秋快乐!‘);

12.Ruby


puts "Java技术栈祝大家中秋快乐!"

13.MATLAB


disp("Java技术栈祝大家中秋快乐!")

14.Assembly language


...

msg db ‘Java技术栈祝大家中秋快乐!‘, 0xa  ;

...

15.Swift


print("Java技术栈祝大家中秋快乐!")

16.Go


fmt.Println("Java技术栈祝大家中秋快乐!")

17.Perl


print ‘Java技术栈祝大家中秋快乐!‘

18.R


print("Java技术栈祝大家中秋快乐!")

19.PL/SQL


dbms_output.put_line("Java技术栈祝大家中秋快乐!")

20.Visual Basic


Console.WriteLine("Java技术栈祝大家中秋快乐!")

终于写完了,我会用 20 种编程语言了,以后可以拿来是吹了。。最后,祝大家中秋佳节快乐,玩得开心!


更多干货推荐

1.史上最强 Java 中高级面试题整理

2.史上最强 Spring Boot & Cloud 教程整理

3.史上最强架构设计分布式技术干货整理

更多请扫描下方的二维码关注我们的微信公众号,干货每日推送!

以上是关于<请教>我学了C语言的基本语法,现在想深入的学习C语言该咋学习? 要学来可以开发windows风格的程序。。。的主要内容,如果未能解决你的问题,请参考以下文章

QT怎么入门

Python学习心得:我学了那么久python,到底有啥感悟

请教一个 C语言 字符串数组之间比较的算法,谢谢

如何用C语言实现在linux下开发软件 请大虾帮忙解决

请教一下有关C语言用(float)强制转换的用法

发现了合自己胃口的公众号,但文章太多翻来翻去真麻烦,还好我学了 Python