❶ c语言学习资源整理
C语言学习资源汇总
一、C语言入门课程
1.实验楼一C语言入门教程
教程+在线开发环境的方式,教程文档详细的讲解C语言基础知识,在线开发环境和本地一样,可以梁握随时动手跟着教程操作,动手学习的方式非常适合入门初学者。
2.gitbook一一笨方法学C
内容较完整丰富,相当于一本书籍了,适合新手入门学习。
3.菜鸟教程一C 语言教程
纯在线文字教程,讲解的不是那么详细,不过简单易懂,适合入门初学者学习,看完后可对C语言有个大概的认知。
4.幕课网--C语言入门
教程+"环境",讲解的比较细致,也很简单易懂,跟着教程可傻瓜式操作学习,适合入门新手。局渣盯
5.网易云课堂一-C语言基础入门
纯视频方式,每个视频15分钟左右,介绍的比较详细,如果喜爱看视频来学习的话,可以看看。
二、C语言实战项目
免费的项目教程:
C语言制作2048;
C语言快速实现五子棋、斗地主的发牌器;
C语言制作简单计桐和算器;
用 C语言编写自己的编程语言。
三、C语言笔记文章整理
学完基础、做完项目之后,就会有各种问题,这个时候就需要学习笔记啦,或自己总结,或看别人的总结都可以。
1.C 语言中的指针和内存泄漏。
2.如何写出优美的 C 代码。
3.C语言的整型溢出问题,酷 壳 - CoolShell.cn。
4.易被遗忘的C/C++要点总结。
5.C/C++的mem函数和strcpy函数的区别和应用。
6.C语言的变量作用域及头文件。
7.10个经典的C语言面试基础算法及代码。
四、其他资源
再整理一些资源,零七碎八的,对于学习C语言的过程中会很有帮助的。
1.awesome-c(英文)、awesome-c-cn(中文版)
2.源码阅读--十个C开源项目。
3.一千行以下有哪些值得学习的小型开源项目? - 互联网-知乎。
4.值得推荐的C/C++框架和库。
5.C与 C++ 的真正区别在哪里?
6.初学者的编程自学指南。
7.免费学习编程的10个好工具。
8.11款学习编程的好玩的浏览器游戏(译)。
9.每个程序员都应该收藏的算法复杂度速查表。
❷ c语言如何学习
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:
一是学习顺序
先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-3个月,其他部分需要学习和工作中慢慢理解和消化了。
c11.jpg
二是学习方法
人的知识80%是通过眼睛获取的,但是学习编程有所不同,除了看书、看视频之外,关键是要勤动手,勤动脑。通过做大量的练习、项目实战不断积累代码量。只有代码量足够多了,项目做的多了,才能算是真正学会了。项目能否完成,就是衡量是否学会的唯一标准。后期就是代码的质量和优化问题了,这个只能在项目工作中慢慢积累经验了。
c12.jpg
最后强调一点
很多人学不会编程是因为掉坑里了。就是教程或者书上的知识点之间跨越太大,作为一个初学者很难自己摸索出来,前面的知识点没有掌握,接着学习后面的知识,肯定是学不会了。目前绝大多数编程书籍和教程或多或少都有这样的弊端。自学能力比较强的人可以通过各种方法,参考各种网上的资料自己解决。但是大多数自学能力不是很强的人,只能依赖老师、同学、同事或者朋友帮忙指导,或者报名培训机构,老师指导完成了。
学习编程通常需要一些好的学习资料,包括纸质的书籍,视频教程,课件,项目练习,代码。零基础入门的书籍推荐《明解C语言》、《C Primer Plus》,还有一本非常特别的汇编和C语言正向逆向结合的书编程达人内部教材《汇编、C语言基础教程》也非常不错,讲解汇编和C语言的本质非常透彻,非常细致。视频资料也是特别多了,各种视频网站、论坛、自媒体都有,比如网易课堂、腾讯课堂、慕客网这些。还有一些论坛,比如CSDN、编程中国等。最重要的一点就是答疑服务,推荐爱达人的网站也很不错,从零基础入门到应用课程,配套的视频、课件、代码、项目、答疑服务都有,还可以兼职接单,学以致用。
❸ 学习C语言需要哪些软件
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:
一是学习顺序
先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-3个月,其他部分需要学习和工作中慢慢理解和消化了。
c11.jpg
二是学习方法
人的知识80%是通过眼睛获取的,但是学习编程有所不同,除了看书、看视频之外,关键是要勤动手,勤动脑。通过做大量的练习、项目实战不断积累代码量。只有代码量足够多了,项目做的多了,才能算是真正学会了。项目能否完成,就是衡量是否学会的唯一标准。后期就是代码的质量和优化问题了,这个只能在项目工作中慢慢积累经验了。
c12.jpg
最后强调一点
很多人学不会编程是因为掉坑里了。就是教程或者书上的知识点之间跨越太大,作为一个初学者很难自己摸索出来,前面的知识点没有掌握,接着学习后面的知识,肯定是学不会了。目前绝大多数编程书籍和教程或多或少都有这样的弊端。自学能力比较强的人可以通过各种方法,参考各种网上的资料自己解决。但是大多数自学能力不是很强的人,只能依赖老师、同学、同事或者朋友帮忙指导,或者报名培训机构,老师指导完成了。
学习编程通常需要一些好的学习资料,包括纸质的书籍,视频教程,课件,项目练习,代码。零基础入门的书籍推荐《明解C语言》、《C Primer Plus》,还有一本非常特别的汇编和C语言正向逆向结合的书编程达人内部教材《汇编、C语言基础教程》也非常不错,讲解汇编和C语言的本质非常透彻,非常细致。视频资料也是特别多了,各种视频网站、论坛、自媒体都有,比如网易课堂、腾讯课堂、慕客网这些。还有一些论坛,比如CSDN、编程中国等。最重要的一点就是答疑服务,推荐爱达人的网站也很不错,从零基础入门到应用课程,配套的视频、课件、代码、项目、答疑服务都有,还可以兼职接单,学以致用。
❹ C语言怎么学
浅谈C语言学习方法
本人是一名windows程序写作员,使用的语言是C语言.其他语言了解一点点,但并不擅长.可能对于初学者来说,首先就是选择一门程序设计语言.当然,今天我将要说的不是这方面.每种语言都有它所擅长的领域与层面.当然对于其他非C语言我是一名门外汗,我也不会站在C语言的立场去谈论其他任何一门语言.好了,在开始进入正题之前,我想谈谈个人对C的一些看法:
C语言是一种早期的计算机语言,最初诞生目的是为了提供一种基于UNIX系统的工作语言.但是,后来却被越来越多的人发现它的优点与潜力.C本身比较接近底层,适合开发系统软件甚至是操作系统.我个人也认为它是界于高级语言与汇编语言之间的中级语言.C语言是一门结构化语言(我认为主要是指它的控制结构如:if if-else while for等等).C程序设计上有提到"自顶向下,逐步深入".以函数为原子功能模块.对于大型的程序来说模块化是很重要的,有一句话说的很好"优质的程序首先就是便与人们之间的相互讨论与交流,其次才是执行效率".当然我个人认为任何一名程序写作者,都应该养成一种特定的思维方式,以程序的思维方式来思考程序的实现.前提就是要足够的来了解计算机底层技术.要不我想就连学习都是很困难的,凡事都是一个思路的问题嘛.标准的来衡量,C应该算是高级语言阵营的一份子.可很多有C语言开发经验的程序写作者.通常亲切的称C为界于底级语言与高级语言之间的中级计算机语言.当然不是因为C比高级语言要差,之所以这么认为是因为C既具有高级语言的结构化与可理解性又具有低级语言的高效率.同时C的移植性也是非常不错的,大家应该知道,越是接近硬件,接近底层的语言就越加的依赖硬件环境,也就是我们所说的设备相关性.C这一点做的是非常棒的.说了这些,在从另一个角度去分析C语言.当然每种语言都有它自身的优缺点,C也一样.比如在现在高级语言与顶层技术的角度来看的话,C最大的缺陷就是Data与算法的分离.举一个例子: 对于一个拥有几千行甚至上万行Code的程序来说,如果修改Data,比如我在Structure中增加一个字段,可能为此我的整个程序都要改动,这使得程序的可重用性大大降低.开发周期也大大的延长.但是在底层的角度来看这也正是C的优点.我为什么要这么说呢?我个人认为在求解与实现一个小问题的时候,我们可以写出一个通用的模块处理不同的Data.当然比如某些经常用到的,基于数据结构的一些常用算法我们可以写出来在开发的时候我们可以直接把预先编写的模块插入到我们的程序中去,这不也是大大低了开发周期吗?初学者完全可以根据自己的需求来编写一个自定义库.好了,说了这些,有些地方我理解错了,还请各位指出来,交流是很重要的,前提是要把自己的心态放平.下面我将谈论本问的重点,也就是如何来学习C语言,是给那些初学者读的.
正题部分:
有人可能会说:学习还用你教啊,谁没上过学啊.其实我今天要说的只是,站在一个过来人的角度,来分析与解释学习C语言的过程中比较困难的地方.当然我个人也会对比较具体的问题进行解释(个人看法).我一直在强调个人看法,我是想让大家明白,对于同一个问题大家可能都很难达成统一的意见,希望批评的时候客气点就好喽!
初学者该看哪些书来入门:
在学习C语言之前,首先就要选择一本教材,对于初学者,我个人并不建议去读电子书籍,最好是买纸质书来学习.比如比较有名的"C程序设计"就很不错,尤其是第二版.我也看过,比较适合中国人来初学.整本书都在全面系统的讲解C的语法结构,构成C的语言元素包括:数据类型,支持的运算符,标识符(是由程序员按照命名规则起的名字,用于变量名,函数名,宏名等等),关键字(编译系统用于实现C内部功能的词,比如:转向goto和中断break等等)等.看完这本书你基本上可以写一些简单的小程序,当然是DOS下的程序.如果你想在进一步深入学习C的话,可以看"C陷阱与缺陷"这本书.写这本书的作者是在Bell工作对C是非常精通的,应该算是大师级的人物了.如果你暂时不想深入C的话,也没问题,因为此时你完全可以把C当作一种编程工具来使用,你要做的就是多写Code来让自己熟悉C语言.经验是非常重要的,"经验是检验真理的唯一方法".当然你不会纸上谈兵,如果你有过多的开发经验的话,就知道在纸上或最初的设想的Code拿到计算机上来实现,最终会发现有很多地方都是不合理的,之前是没有办法想象到的.在初学C的过程中,比如你会看"C程序设计"来初学C,当你学完每一章的时候要把习题来完成,这里就是考验你学到的知识了,看看你应用能力怎么样?尤其是程序设计题目,比较有意思.哪里不懂了.可以翻回去看书中的解释.如果没有解释或你还是不明白,可以去问别人,与其他人交流. bbs,QQ或Google.直到你弄明白为止.当你把问题最终解决的时候,我敢打赌,此时你一定很兴奋,或者是比较兴奋.这个时候知识已经在你的大脑里了.
下面我为你推荐几本不错的关于C语言籍:
C编程规范
C语言大全第四版 (个人感觉不错,里面有提及C标准方面的东西)
C和指针
The C programming Language (经典着作)
如果你要看电子书的话,以上几本书在Google上很容易就可以找到.
关于C语言的初步理解:
对于初学者,会有太多的疑问,原因是你的知识面太小.现在我为你解释一些C相关的东西.目的是让你能够有一个大致清晰的方向,来给自己安排学习计划.专业的来说,我们是或将是一名程序员,程序员当然就是要开发程序了.对于软件开发方面我来解释下术语:
C,C++,ASM,Basic,Java 这些是计算机语言.计算机语言很多,我就不多说了.
Visual C++,Visual Basic, Microsoft研发的开发环境,开发环境包括:编译器,库函数(每种C语言编译器都支持标准库,同时它们也会扩展自己的库,所以很多比较以来库函数实现的程序员,在转向不同的开发环境的时候最初总是不使用的,会遇到很多问题),一些资源模板等等.Visual 就是可视的意思,后面的就是语言.Visual C++支持C与C++2种语言,是根据文件的扩展名来判断采用哪种编译内核.
什么是"面向对象"与"面向过程"? 其实是2种完全不同的程序设计思想,C语言是面向过程语言,而C++是面向对象语言.在面向对象的语言中有"类(Class)"这个东西.C中没有.对象是由类来派生的一个实例,相反类就象是一个模板.
什么是SDK? SDK就是软件开发工具包(Software Development Kit).指的范围比较广,通俗的说,凡是能够与软件开发过程占上边的东西都属于.比如:库文件,参考资料,接口函数,当然语言也应该属于.
DDK就是设备驱动程序开发工具包.
Turbo C: 这是一个比较精致的C语言编译器.
理论上来说任何一门语言都可以在任何一种操作系统上运行,前提是操作系统要支持.也就是我们所说的应用程序接口,比如Window API(Application Programming Interface),其实是Microsoft内部定义的接口函数用于实现一些Windows内部的功能.一些对象的描述术语,在不同平台上是不同的,比如:Windows下的"调用",经常被称为"呼叫","返回"被称为"传回".
什么是"算法"? 你最初只需要知道算法实际上就是对特定的Data进行运算的一段代码而已.也可以认为在求解一道题目的时候,采取的方法与步骤的总称.对于基本的C程序来说,实际上就是由Data与算法来组成的.
什么是"数据结构"? 如果要是系统的讲解,还需要一本书"数据结构",简单的说:是程序要处理的数据在内存中的存储与组织的方式,分为:物理结构与逻辑结构.逻辑结构就是我们抽象化以后得到的大脑影象.
什么是"函数库"? 它们以文件的形式存储,是预先定义好的函数的集合,我们的程序可以直接调用.当然前提是要包含它的头文件(库函数的原型声明).这些函数是在静态连接期间组成到.exe文件中去的.Windows又存在另一种库,叫做动态连接库(DLL).
GUI: 也就是"图形用户界面",就是我们在Windows上看到的,存在:菜单栏,滚动条与显示区域的窗口.
GDI: 图形设备接口,从程序写作者的角度来看,其实GDI就是由上百个函数与数据形态和一些相关的数据结构所组成的.
学习C语言的全过程:
仔细想想,实际上学习C语言,最初是应该先学习C语言的基础语法.也就是学习C语言的组成部分.一部分一部分的向下学.知识要一点一点的巩固的.本人假设你学习C语言是看"C程序设计".我认为你应该先把C程序设计仔细的看一便,这样你应该可以对整本书和C语言的整体组成结构有个大致的清晰了解.不要认为学习只是在看书,看一便就可以了.你应该学会记笔记,在记笔记的过程中,其实你就是在学习,从知识的分析,理解,归纳,到最后以自己的思维方式记下来,这整个过程就是把书中的知识抽象到你自己的脑袋里.个人感觉学习效果非常好,不懂就问,要多多与人交流,要多思考,遇到问题自己先多想想,实在找不到问题出在哪,在去请教别人,不要有不懂的地方就直接去问别人,那样对你没太大的好处.其实要学会给自己安排适合自己的学习计划,我大致来估计了一下,如果你每天能花4个小时安静的,用心去学习的话,30天之内你应该可以掌握C语言了.其实在整个学习过程中你大多数时间都在看书,而不是面对电脑.在调试你的代码之前,先在纸上把核心代码大致写出来,分析一下:程序的组成模块(可以是一个函数或多个),由几个函数来实现,接口的封装.采用哪种数据结构更适合一些.关键在于算法.在你的最终程序发布之前,最好把你的代码行数减到最少.不要只想着把代码写多.过多的代码对程序来说是负担.你可以在Internet上下载一个文件(C语言经典例题.chm),里面大致包含了上百个经典的例题.每一个例题都是C语言某部分的典型应用.花时间把这个文件中的所有例题代码研究一下,最好能自己把代码改善,以自己的方式来求解.以后你会发现你在写一些应用程序的时候经常会有一些算法.会涉及到我之前提到的例题.最后我认为你可以自己来写C语言标准函数,比如strcpy(); strlen();strcat();最好不要过分依赖库函数.
C语言学习的难点:
现在应该是已经讲到一个重点的环节.很多网友都说学习C语言很难,我认为C中有些部分是比较复杂,难理解的.当然在你具有了丰富的开发经验以后,这以不在是问题了.下面我个人会对我认为学习C的时候比较难学的地方进行我自己的阐述,如果哪里不正确,还请各位指出:
指针的出现:
我想有很多初学者学习到指针那一章都感觉很难,下面我就以自己的想法来解释下指针这个特殊的数据类型,
基本变量大家可能并不难理解,因为基本变量其内部存储了同类型的常量,事实上指针也是变量,不过呢,这个变量和基本变量有点不一样,那你又问了:是哪里不一样呢? 我告诉你,简单的来理解其实普通的变量内部存储了同类型的常量,而指针变量内部存储的则是"同类型变量的首地址".这样你能够理解吗,是很简单的解释,但不失本质.事实就是这样的.如果你不理解"同类型变量的首地址"的话,我可以给你形象的来描述一下:
float Variable; //声明一个单精度实型的变量
此时,编译器已经给Variable分配了内存空间,结构如下:
__________
| |1001
|---------
| |1002
|---------
| |1003
|---------
| |1004
|---------
以上便是Variable的内存结构了,16位下的float占用4个字节,内存地址是线性编码的,我们可以很容易的看出Variable的首地址就是他第一个单元的地址1001,好的,继续向下看:
float *Pointer=&Variable; //声明一个指向Variable的指针Pointer
_________
|1001 | 这是Pointer的内存结构
|_______|
我们的程序可以这样来执行:
Variable=1.0;
直接给Variable赋值,我们称为直接访问.
也可以这样执行:
*Pointer=1.0;
也可以通过指针变量来赋值,前面的*是间接运算符号,意思是求Pointer内部存储地址所标识的内存单元.也就是Variable.此时,是赋值是通过间接访问来实现的.可以这样形象的描述:
________ (指向Variable) __________
|Pointer|------------------------------------>|Variable|
--------- ----------
以上应该是指针实现的基本解释,很多优秀的程序写作者都说指针是C语言中的精华,的确如此,很多优秀的程序写作者写程序都非常依赖指针,因为它很方便,实际上指针所访问的对象是没有限制的,他可以指向任何类型的变量,前提是只要我们知道内存地址.因此指针也并不安全,在开发网络程序的时候,尽量要少使用指针.下面我们在来看一下指针在数组中的使用.
数组中的指针:
简单的来解释下数组,数组结构在C中使用比较普遍,其实最常用的就是char 类型的数组,主要是用于字符串操作.实际上数组是"同类型变量的有限集合".我想这应该不难理解吧.数组在内存中占用连续的内存单元(地址连续),来存储数组中的每一个元素.数组是预先分配好指定长度的内存单元,供数组元素使用.它并不支持动态内存分配.在内存中想要唯一的确定数组,需要2个标识:入口地址(函数名)和结束标记('\0').有些语言并不向C语言这样支持字符串结束标记,它们必须要另外声明一个变量来标识尾元素的下标.那数组名其实就是这一组内存单元的首单元,他的地址就是整个数组的入口地址.此时应该明白了,数组名是一个指针,这样理解没有问题.不错在具体操作的时候不允改变数组名的地址,也不符合实际要求.这样就可以明白数组名是一个什么 const Pointer(指针常量).我们可以这样做:
int Array[10];
int *Pointer;
Pointer=Array;
for(i=0;i<10;++i)
Pointer==i;
以上代码应该是没问题吧,同类型的指针,完全可以胜任数组名的任务.一点问题没有而且可以运行的很好.当然,我们可以进一步把代码这样来写:
把
for(i=0;i<10;++i)
Pointer=i;
改成
for(i=0;i<10;++i,Pointer++)
*Pointer=i;
不好意思,我记不清了,指针的++运算是地址+1还是向后移动一个元素的位置,如果是地址+1的话,以上代码在改成这样:
for(i=0;i<10;++i,Pointer+sizeof(int))
*Pointer=i;
如果数组类型是char的话,那就更方便了,因为字符串存存在一个在尾元素之后的结束标记('\0'),下面给出一个简单的代码,应用char Pointer:
char * my_strcpy(char * dst, const char * src)
{
char * cp = dst;
while( *cp++ = *src++ ); // 注意运算符的优先级与结合性
return( dst ); //返回新传的指针
}
以上代码实现字符传Copy功能,代码是不是很简洁啊.如果不需要移动内存块的话,我们完全可以通过交换指针(内存地址)来实现排序操作,其效率应该是很客观的.补充一句:千万要弄清楚,指针本身与指针所指向的变量不是一个单元.
❺ c语言使用什么软件,该如何使用
C语言作为一门古老的编程语言,应用范围非常广,至于编程的软件的话,其实就非常多了,下面我简单介绍几个不错的C语言编程软件,感兴趣的朋友可以自己尝试一下:
Dev-C++这个是Windows环境下一个轻量级、免费的C/C++集成开发环境,自带有TDM-GCC编译器、GDB调试器,可以直接编译运行C语言程序,轻快灵活,功能简洁,支持代码高显亮,没有自动语法提示和自动补全功能,对于初学者来说,非常锻炼人,纯手工编写代码,更能打好基础:
VC++6.0
这个软件的功能和Dev C++差不多,也是Windows环境下一个非常不错的C/C++开发环境,在早期的学习中,经常会用到这个软件,许多学校机房中都使用这个软件教学,可以直接编辑运行C语言程序,功能比较简单,没有任何提示功能,都是手写代码,现在来说,使用不多了,但对于初学者来说,也是一个不错的选择:
CodeBlocks
相比较前面2个软件,CodeBlocks的功能强大一些,开源、免费、跨平台,小巧灵活,支持代码高亮、语法检查、自动补全等功能,除此之外,还提供了许多现成的工程模板,可以快速创建控制台应用、Qt应用等,使用起来非常方便,也是一个非常不错的C语言编程软件:
VS Code
这是微软开源、免费、跨平台的一个代码编辑器,插件众多,生态环境良好,配置GCC编译器后,也可以直接编辑运行C语言程序(本身支持的编程语言也非常多),支持智能补全、语法提示、Git等功能,轻便灵活,使用起来非常不错,也很好学习和掌握:
VS 2017
这是一个专业的C/C++开发环境,也是个人和公司使用最多的IDE,项目管理、团队协作来说非常方便,集成的环境比较多,Python、VB、C#等,这个软件都能很好的兼容,自动补全、语法检查和提示功能这个软件都支持,整个软件比较大,运行起来电脑可能会比较卡,而且功能比较复杂,初学者来说,需要一段时间才能适应和基本掌握,但的确是一个值得学习和使用的IDE环境:
Vim
这也是一个非常经典的C语言编程环境,只不过在Linux环境下比较常用,免费、跨平台,插件扩展比较丰富,轻巧灵活,功能简洁,安装GCC编译器后,也可以直接编译运行C语言程序,对于在Linux环境下开发C来说,是一个非常不错的选择:
目前,就分享这6个不错的C语言编程软件吧,有Windows的,也有Linux的,对于初学者来说,完全可以满足日常开发和使用,当然,你也可以使用其他软件,像IDEA、Eclipse(安装插件)等,也可以,适合自己就行,网上也有相关资料可供参考,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
这个有好多,我先来说说我用过的有哪些?
我在Windows上一开始用的是 win-TC,这是一个新手软件。
他有了界面,能够使用鼠标,具有语法高亮,可以嵌入汇编等特点,对新手一些,拜托了不能用鼠标的困难。
我给你看看它的样子
我再来讲一个: dev-C++
这个软件也挺好的,是windows下一款开发c/c++的开发环境,使用gcc为编译器,遵循标准,功能比较强大,语法高亮,可以进行单步调试(这对排除错误很重要),进行断点设置等功能,遵循C标准,是一款很强大的开发工具。
我来给你看看它的样子
再来最有一个,他就是 VC++
微软的产品,编译器,链接器,运行,调试等功能于一体的强大开发工具,特点是功能十分强大,对于新手来说需要一段时间去摸索.
你自己考虑用哪个吧!
祝愿你c语言学的越来越好!
C语言只是一门计算机编程语言,具体使用什么软件,你应该指的是要是用什么样的集成开发环境(IDE)去编译。因为编辑C语言,可以说只要是能打字的就可以,记事本都可以,但是编译的常见的有Visual Studio,GNU gcc等一般的编译工具,但这仅限上层应用工具编译的C语言代码,也仅供上层应用使用,在嵌入式中最常用的是Keil,IAR这两款IDE,也有部分使用eclipse,Qt Creator。具体看MCU支持的开发环境,我接触过的有Visual C++,Visual studio,Keil,IAR,Atmel Studio,eclipse,
Simplicity Studio,ST Visual Develop,这些都是C语言的编程工具,使用的编译交叉工具。有些用来编写C语言的,我用过记事本,notepad++,Vim,sourceinsight,sublime等等。
我是Java软件工程师,用专业角度分享干货。在这里推荐三款软件,足以满足你学C语言的需求。
VC6.0是大部分科班出身的第一款编程软件。本人软件工程专业,大一就是使用这款软件入门C语言,当然这款软件也可以用来学习c加加。
既然是学院派软件,那自然有教科书选择它作为编程C语言入门的原因,简朴的界面,容易上手的操作方式。
缺点是Windows10安装有点麻烦,Windows7及以下可以兼容,而且官网也不对此软件进行维护了。
升级版VC,Visual Studio如果打算学C语言并且以后成为你谋生的工具,在Windows系统里首推VS,这款软件不是免费的但是有社区版,当然仔细找找可以弄到破解版本也不是难事。
VS是非常强大的编译软件,不仅仅可以写C语言以及其他带c的语言,还可以写Java等主流语言。个人用过2010版本写c加加,确实是不错的工具。
Linux系统必备,Vim以上两种是Windows用户必备的C语言学习软件,如果你想在Linux里掌握更加纯粹的编程方式,那么可以用Vim,这是简单而又经典的C语言编译工具。
当然它与前两款有所不同,写完以后没有按钮给你点击运行,你必须在Linux的命令行上编译运行,这对你掌握C语言的原理会有更好的帮助,顺便还能把Linux知识掌握一番,一箭双雕。
C语言使用的软件可以分为两种,一种是为懒人设计的可视化编辑工具:IDE,一种是”心中有剑“的无可视化编辑工具:文本。下面我来详细说说。
一、C语言可视化编程工具IDEIDE,全称叫做“Integrated Development Enviroment”(此处我擦把汗,还好英文没还给老师),中文名叫“集成开发环境”,关键字是“集成”。C语言IDE集成了C程序文件打开、保存、编译、运行、调试、工具等各种功能,所以叫做集成开发环境。
目前有很多种IDE,比较着名的有Visual Studio、Eclipse CDT、Dev-C++等,根据每人不同的爱好去选择。下面我大概说说Dev-C++主要功能。
1、新建一个C程序文件
开始编写C程序代码了,第一步当然是新建一个C程序代码了,在菜单“File”下找到“New”即可:
可以单独新建一个C程序代码文件,也可以新建一个项目。顺便说下,在“File”菜单下,还有诸多的其他功能,如打开已有的C语言程序代码、保存当前的C程序代码等,充分体现了IDE的“集成”概念。
2、编译运行一个C程序文件
写完一个C语言程序代码后,可以在“Execute”菜单下找到“Compile”和“Run”,也就是编译和运行的意思。
菜单“Execute”下的功能也是十分的丰富,有单独的编译、运行步骤,也有编译与运行的集成步骤,还有重新编译、C语言代码语法检查、参数设置、清空当前项目等诸多实用功能。
对于C语言初学者来说,Dev-C++是一个很不错的IDE编程环境。
二、C语言不可视化编程环境很多C语言编程高手从来不用IDE,你跟他说IDE,他会一脸茫然“那是个啥东西?”不少程序员编程直接打开文本文件,在文本文件上写好C语言程序代码,然后GCC编译,结束!这就是采用不可视化编程环境。
例如上面的那段C语言代码就写在一个文本文件里,程序员靠着眼力看下程序没有什么语法错误,然后直接GCC编译C程序代码文件,如下:
上图是使用GCC编译时使用的一些编译参数。可以看到相比较于IDE的一键式编译,手动编译需要自己指定编译头文件目录、编译C语言函数库路径等,比较麻烦。不过这也是手动编译的魅力所在,就是其乐无穷!
编译完了之后会生成一个C程序可执行文件,直接运行这个可执行文件即可。
使用C语言编写程序,有两种方式:一种是可视化编程环境,也就是我们常说的IDE(集成开发环境),一种是非可视化编程环境,纯手工活儿。至于哪一种更好因人而异,希望能帮助你找到适合自己的编程开发环境!
老话说:欲先善其事必先利其器,所以说对于学习一种程序语言,选择一个良好的工具是至关重要的!选择工具之前,首先对语言得有个起码的认识:
C语言的显着特点C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言的文件是由数据序列组成,可以构成二进制文件或文本文件。
常用的软件有一般常用IDE(集成开发环境)的有Microsoft Visual C++,Code::Blocks,Dev-C++,Watcom C++ ,Borland C++ Builder,Borland C++,GNU DJGPP C++ ,High C,Lccwin32 C Compiler 3.1,Turbo C,C-Free,win-tc 等等
对于新手小白来说可以选择Microsoft Visual C++,因为其特点是:界面友好,功能强大,尤其是调试也很方便。
安装的方法:(以下是网络安装经验,仅供参考)https://jingyan..com/article/4ae03de32997a63eff9e6b33.html另外推荐几个视频学习网站
网易云课堂;腾讯课堂;慕课网等
***希望对您有帮助,有不同想法,欢迎在下方评论留言!!! 码上有理友聚在这等着你
推荐VS2017
1、安装VS2017 IDE软件,不多说,安装guide一步步安装即可。
2、选择File-New-Project,选择Visual C++-general-Empty Project新建一个C++工程。
3、在右侧的Resource files 右击Add-New Item选择C++ File(.cpp)
4、书生意气风发的写入Hello world
代码如下:
#include “stdio.h”
#include
Int main()
{
printf("Hello World!”);
system(“pause”);
return 0;
}
学c语言难道不是应该找学习方法吗?找APP是不是方向错了,
就算有课程的APP大多都是收费的,不如网上搜集点学习资料,找别人做好的开源代码,学习别人的思想
学习编程最重要的是自己敲代码
推荐一款windows和linux下通用的开放源码的全功能c/c++集成开发环境:code::blocks
这是linux下的界面。
windows版可以汉化。
也可以使用Turbo c 3.0
❻ c语言如何学习
谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言。
学习C语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。
1、多看代码 在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据结构。
毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。
2、要自己动手 编程序是个实干的活,光说不练不行。刚开始学的时候可以多练习书上的习题。 对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。 自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一点小游戏,文曲星之类的电子词典上小游戏很多,照着编作为练习。基础很扎实的时候,可以编一些关于数据结构方面的东西,诸如最经典的学生管理系统。之后.....学汇编、硬件知识。
3、选择一个好的编译器 VS2010以上版本
4、关于养成良好的编程习惯 基本上每本C教材上都要提到。作为新手这条一定要时时遵守。具体方面:
(1) 在比较复杂的代码后面要有注释。 如果光溜溜一堆代码,别人就不可能看懂你的代码,而且也不利于查找错误。
(2)注意语句的嵌套不能过长,一般来说,一段代码里Tab要少于8个。
简单说就是语句最多8个嵌套。 对于新手来说,这个标准还要下降。有一个好习惯是,把主函数尽量写简短。经常看到别人的代码是主函数只有几行,几个函数调用,而定义全在主函数外部。这样一是减少了主函数内部的嵌套,二是比较精简,容易读懂。
(3)注意语句的选择。并不是分支语句就用if循环就用while、for。在适当的情况下switch和do while语句也是要用的。
❼ C语言入门怎么自学 需要哪些资料
参考我的自学路线:
0.选定了C就别放弃。入门C可能需要一个多月的连续学习时间,但其他听上去更“厉害”的编程语言会花费更长的时间,并且它们需要有C的基础才能深入学习。
1.一台笔记本或平板,不推荐在手机上编程。
2.如果是windows操作系统,下载安装mingw,在命令行下熟悉了“编辑—编译—链接—执行”这个基本流程之后,就可以尝试VS2017 community或者Code::Blocks或者其他任何C/C++的集成开发环境。
想学好就不要直接用IDE!在从命令行转到IDE之前,你甚至可以花半个小时的时间熟悉一下Makefile,不学这个也没事。
3.一本《C Primer Plus》实体书,简单详细,入门经典。不推荐看电子版,伤眼睛。
4.一支笔,如果不想在书上记笔记,则你还需要一本笔记本。
5.最重要的:受得了枯燥。知识点不弄懂不跳过。看书的时候不做一些不相干的事:看电影,聊天,玩游戏……
我在过去的四个月里看完了《C Primer Plus》和《C++ Primer》,为了学好编程彻底放弃了玩游戏、听音乐(一听歌就会跟着唱,没办法认真学习)。
说实话,完整地看完第一遍是一个很痛苦的过程,不过现在再复习起来,最多也就是两天一遍。每次复习都能巩固新知识。
❽ c语言编程怎样入门
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:
一是学习顺序
先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-3个月,其他部分需要学习和工作中慢慢理解和消化了。
二是学习方法
人的知识80%是通过眼睛获取的,但是学习编程有所不同,除了看书、看视频之外,关键是要勤动手,勤动脑。通过做大量的练习、项目实战不断积累代码量。只有代码量足够多了,项目做的多了,才能算是真正学会了。项目能否完成,就是衡量是否学会的唯一标准。后期就是代码的质量和优化问题了,这个只能在项目工作中慢慢积累经验了。
最后强调一点,很多人学不会编程是因为掉坑里了。就是教程或者书上的知识点之间跨越太大,作为一个初学者很难自己摸索出来,前面的知识点没有掌握,接着学习后面的知识,肯定是学不会了。目前绝大多数编程书籍和教程或多或少都有这样的弊端。自学能力比较强的人可以通过各种方法,参考各种网上的资料自己解决。但是大多数自学能力不是很强的人,只能依赖老师、同学、同事或者朋友帮忙指导,或者报名培训机构,老师指导完成了。学习编程通常需要一些好的学习资料,包括纸质的书籍,视频教程,课件,项目练习,代码。零基础入门的书籍推荐《明解C语言》、《C Primer Plus》,还有一本非常特别的汇编和C语言正向逆向结合的书编程达人内部教材《汇编、C语言基础教程》也非常不错,讲解汇编和C语言的本质非常透彻,非常细致。视频资料也是特别多了,各种视频网站、论坛、自媒体都有,比如网易课堂、腾讯课堂、慕客网这些。还有一些论坛,比如CSDN、编程中国等。最重要的一点就是答疑服务,推荐爱达人的网站也很不错,从零基础入门到应用课程,配套的视频、课件、代码、项目、答疑服务都有,还可以兼职接单,学以致用。