如何学习C语言编程
7月3日 心碎巷投稿 在本文中:准备工作变量的使用使用条件语句学习循环语句使用函数不断学习参考
诞生于上世纪70年代的C语言是一门古老的语言了,但作为一门底层语言,时至今日它仍然非常强大。学习C语言能够为学习其他更复杂的语言打下良好的基础,因为你在C语言中学习到的知识对几乎所有的编程语言都适用。下面就来看看如何开始用C语言编程吧。
部分
1:准备工作
1:下载和安装编译器。C语言需要通过编译器解释为计算机可以理解的机器码。编译器通常是免费的,不同的操作系统上一般使用不同的编译器。
对于Windows系统,可以尝试MicrosoftVisualStudioExpress,其是Windows平台上最流行的多语言IDE(集成开发环境),其集成了Microsoft开发的C语言编译器。
对于OSX系统,Xcode是一款优秀的多语言IDE,其集成了C语言的编译器。
对于Linux,gcc是一个不错的也是最流行的选择。
2:理解基本概念。C语言是一门古老的语言,但却十分强大。它最初是为Unix操作系统设计的,但后来被移植到了几乎所有的操作系统上,并得到了很多扩展。C语言的现代版本是C。
C语言本质上是由函数构成的,在函数体中你可以使用变量,条件语句,循环等语句来存储和处理数据。
3:查看一些基本的代码。下面是用C语言写的一段非常基本的代码,阅读这些代码,尝试理解这种语言的不同部分是如何工作的,并对程序的运作原理有初步的认识。
include
intmain()
{
printf(Hello,World!);
getchar();
return0;
}
这里的include指令在程序开始之前就出现了,它的功能是把包含有你需要的函数的库加载进来。在这个例子中,引入stdio。h使得我们能够使用printf()和getchar()这两个函数。
这里的main()指令会告诉编译器,程序需要运行一个叫做“main”的函数,该函数运行完毕后返回一个整数值。所有的C语言都要运行一个“main”函数。
{}符号表示括号内的所有内容都是函数的一部分。在本例中,他们标记了所有的内容都是“main”函数的一部分。
printf()函数能够将小括号中的内容显示在用户的屏幕上。双引号保证了这个字符完全按照字面的样子输出,n组合告诉编译器这串字符输出完之后将光标移动到下一行。
;符号表示一行的结束。绝大部分C代码都以分号结束。
getchar()函数告诉编译器这段程序要等待一个按键的输入才能够继续。考虑到大部分编译器在运行完程序之后会立刻关掉程序窗口,这个功能还是很有用的,因为这样可以让程序保持运行直到有键被按下才会结束。
return0指令表示程序的结束。请注意”main”函数是一个int类型的函数,也就是说当函数结束时需要返回一个整数。如果返回0则表示程序正确的执行了,其他数字表示程序运行时发生了错误。
4:尝试编译这段程序。把上面的代码输入到你的代码编辑器中,然后保存为”。c”文件。用你的编译器编译它,一般来说点击Build或Run按钮即可。
5:要养成写注释的习惯。注释是代码中的一部分,它不会被编译,但是却可以告诉你代码做了些什么。这对于提醒你自己你的代码是干什么的以及让其他开发者理解你的代码都很有帮助。
在C语言中添加注释只需要把要注释的部分的前面添加,后面添加。
不要吝啬你的注释,除了特别简单明了的地方都尽量加上注释吧。
注释功能也可以快速的屏蔽一部分代码但不删除它们。只需要给你想要排除的代码用注释标签包起来它们就不会被编译。如果你想要改回来,去掉注释标签即可。
部分
2:变量的使用
1:理解变量的功能。变量是用来存储数据的,不管是计算得出的还是用户输入的数据。变量在使用前要先定义,并且有不同的类型可以选择。
有以下几种常见的变量类型int,char,和float。每种变量类型都代表一种数据存储的格式。
2:学习声明变量。变量在使用前要先被创建出来,或者叫”声明”。声明一个变量只需要在变量类型的后面写出变量的名字即可。比如,下面就是一些变量声明的例子:
inta,b,c,d;
注意,你可以在一行中声明多个变量,只要它们的类型是一样的就行,你只需用逗号把变量名隔开即可。
和大多数的C代码一样,变量的声明也要以分号结尾。
3:理解在何处声明变量。变量的声明必须要放在每个代码块之前(代码块是指用大括号{}包起来的一段代码)。如果你在代码块后边声明变量,程序就不能正确执行了。
4:用变量来存储用户的输入。现在你了解到了变量的一些基本原理,你可以写一段简单的程序来存储用户的输入。这次你需要用到另外一个叫scanf的函数,它的功能是把用户的输入赋值给指定的变量。
include
intmain()
{
printf(请输入一个数:);
scanf(,x);
printf(你输入了:,x);
getchar();
return0;
}
这里的符号告诉scanf函数在用户的输入中找出整数。
x前面的符号告诉scanf在哪里找到要修改的变量,并把输入的整数值存进去。
最后的printf命令读出输入的整数并返回给用户。
5:处理变量。你可以用数学表达式来处理之前存储的变量。需要注意一个重要的差别:在数学表达式中单个是赋值号,作用是把等号右边的值赋给等号左边的变量,而则是比较两个变量是否相等。
x34;把x设为34,也就是12
xx3;把x的值增加3,然后把新的值赋值给x
x15;检查x是否等于15
10;检查x是否小于10
部分
3:使用条件语句
1:理解条件语句的基本概念。大多数程序都是由条件语句驱动的,这样的语句可以判断一个条件是TRUE(真)还是FALSE(假),然后据此执行不同的动作。最基本的条件语句是if语句。
C语言中的TRUE和FALSE和你平常理解的有点不太一样。TRUE和任何非0的数总是相等的。当你执行一个比较时,如果结果是TRUE,会返回一个”1”。如果结果是FALSE,会返回0。弄清楚这一点能帮助你更好的理解IF语句的执行过程。
2:学习基本的比较符号。条件语句是以比较大小的数学表达式为核心的。下面列出了最常用的一些比较符号:
大于
小于
大于或等于
小于或等于
等于
!不等于
105TRUE
615TRUE
88TRUE
48TRUE
33TRUE
4!5TRUE
3:写一个IF语句。利用IF语句,你可以根据一个表达式计算的结果决定之后的程序如何运行。之后学习了其他条件语句后你可以把它们组合起来实现更强大的功能,不过现在写一段简单的代码熟悉一下就行了。
include
intmain()
{
if(35)
printf(3比5小);
getchar();
}
4:使用ELSEELSEIF语句来扩展你的条件判断。在IF语句中你可以添加ELSE和ELSEIF语句来处理更多不同的结果。ELSE后面的语句在IF中的判断结果为FALSE时执行。ELSEIF则可以让你在一个代码块中使用多个IF语句来处理更多的情况。阅读下面的代码看一下他们是怎么工作的。
include
intmain()
{
printf(请输入您的年龄:);
scanf(,age);
if(12){
printf(你是个孩子!);
}
elseif(20){
printf(年轻的感觉真好!);
}
elseif(40){
printf(你充满了青春的活力!);
}
else{
printf(充满智慧的年纪!);
}
return0;
}
这段代码接收用户输入的一个数据然后传递给IF语句。如果这个数据满足第一个条件,则第一个printf被执行。如果没有满足第一个条件,则后面的各个ELSEIF会逐个进行判断直到有一个满足条件的分支为止。如果没有任何分支满足条件,则ELSE语句被执行。。
部分
4:学习循环语句
1:理解循环的原理。循环是编程中很重要的一部分,它们让你可以重复执行一段代码直到满足特定条件为止。这个机制使你可以很容易的实现重复的动作,同时省去了每次做条件判断的麻烦。
有3种类型的循环:FOR,WHILE,和DOWHILE。
2:使用FOR循环。这是最常见和好用的循环类型。它会不断的运行循环内的函数直到循环条件不再成立。FOR循环需要包含3条语句:初始化变量,循环条件,和变量更新的方式。如果你不需要其中的某个语句,把该处空着打一个分号即可,否则的话循环会无限运行。
include
intmain()
{
for(y0;15;y;){
printf(,y);
}
getchar();
}
在上面的程序中,y被设为0,循环继续运行的条件是y小于15。每次循环中y的值被打印出来,并且被增加1。一旦y15,循环就结束了。
3:使用WHILE循环。WHILE循环比FOR循环要简单的多。它们只有一个语句,只要该语句为TRUE循环就不断执行。你不需要初始化或更新变量,不过你可以在循环体中做这些事。
include
intmain()
{
while(15){
printf(,y);
y;
}
getchar();
}
这个循环每执行一次,y命令就把y的值增加1。一旦y达到16,循环就结束了。(记住只有在y小于等于15的条件下循环才会执行。)
4:使用DOWHILE循环。这种循环在你想要确保一个循环至少要被执行一次时非常管用。在FOR和WHILE循环中,循环条件的检测是在循环开始之前进行的,这也就意味着有可能第一次检测就无法通过,那样的话循环体一次都不会被执行。然而DO。。。WHILE循环会先执行一次循环体然后再做检测,这就保证了循环体至少会被执行一次。
include
intmain()
{
y5;
do{
printf(循环被执行!);
}while(y!5);
getchar();
}
在上面的循环中,即使循环条件检测的结果为FALSE还是会展示一条信息。变量y的值被设为5而WHILE循环被设置为只有当y不等于5时才运行,所以循环执行到条件检测时就会终止。但信息还是被展示出来了,因为条件检测是在输出信息之后的。
DOWHILE循环中的WHILE语句必须以;结尾。这是唯一一种循环体以分号结尾的情形。
部分
5:使用函数
1:理解函数的基本原理。函数是可以被程序的其他部分调用的自成一体的代码块。使用函数可使你更容易重复一段代码,同时也让程序变得简单易读、便于修改。函数中可以包含前面提到的所有技术,甚至可以包含其他函数。
前面的例子中的main()就是一个函数,同样getchar()也是。
要想写出高效且易读的代码,函数是至关重要的。用好函数可以使你的程序条理更清晰。
2:从函数原型开始。在真正开始编写一个函数之前,你最好先搞清楚你要完成什么功能,并从函数原型开始编写。函数的基本语法格式为:“返回值类型函数名(参数1,参数2,);”。比如下面是一个把两个数相加的函数:
intadd(intx,inty);
上面的代码创建了一个把输入的x和y相加然后返回他们的和的函数。
3:把函数添加到程序中。你可以用上面的函数原型实现一个把用户输入的两个数相加的函数。下面的程序展示了函数是如何处理输入的数字的。
include
intadd(intx,inty);
intmain()
{
printf(请输入要求和的两个数:);
scanf(,x);
scanf(,y);
printf(您输入的数字之和为add(x,y));
getchar();
}
intadd(intx,inty)
{
}
请注意,函数的原型也需要放在程序的顶部,这样能保证当这个函数被调用时编译器已经知道存在这个函数,同时也知道它的返回类型。不过只有你想在函数调用处之后再实现这个函数时才有必要这么做。如果你直接把add()函数的实现放在main()函数之前,那么即使不声明函数原型也是一样的。
这个函数的实现代码其实是放在程序的底部的。main()函数获取了用户输入的两个整数并把他们传给add()函数以便后者进行处理,然后add()函数把计算的结果返回给main()。
当add()函数被定义之后,你就可以在程序中的任何地方调用它了。
部分
6:不断学习
1:找一些C语言编程相关的书来看。这篇指南涵盖了C语言中最基础的部分,但对于完整的C语言只是体系来说这只是皮毛。如果能有一本好的参考书你在学习C语言的道路上能省去许多麻烦
2:加入一些社区。不论是在线上还是线下,都有一些很棒的致力于学习和发展优秀编程语言的社区。如果能找到一些志同道合的C语言程序员,并和他们相互交流,你一定能进步的很快。
如果可能的话还可以尝试黑客马拉松活动。在这项活动参赛的团体或个人需要在有限的时间里对给出的问题提出自己的程序和解决方案,因此很能培养人的创造力。你还可以籍此认识许多优秀的程序员。并且世界各地都有规律性举办的黑客马拉松活动。
3:参加一些课程。虽然你没必要重新回到学校修得计算机科学的学位,但是适当的参加一些相关课程还是会让你的学习过程有质的飞跃。没有什么能比一位C语言专家的言传身教更能帮助你了。通常你总能在网络上找到一些培训课程,也有一些专业的计算机培训机构可供选择。还有一些大学的优秀课程是免费对外开放的,你可以去旁听。
4:考虑学习C。如果你已经掌握了C语言,了解一下C将对你大有裨益。因为C是C语言更现代的版本,它更加的灵活和方便。C是以面向对象的思想设计的,掌握C之后你就可以在几乎所有操作系统中编写强大的程序了。
小提示
多给程序写注释。注释不仅可以帮助其他可能看到你的代码的人更好的理解代码,还能帮你会一起你写的代码是什么意思以及你为什么要这么写。当你写代码的时候你可能很清楚你要干什么,但两三个月之后呢?你很可能已经忘的差不多了。
如果你在编译时遇到语法错误而被困扰,记得用谷歌或其他搜索引擎搜索一下你遇到的问题。有可能已经有人遇到了同样的问题并贴出了解决办法。
你的源代码需要以。c扩展名做后缀,这样编译器才能够知道这是一个C语言源码文件。
如何进行三方通话在本文中:家用电话法iPhone法用Verizon服务计划的手机(非iPhone)进行三方通话功能手机、GoPhones、通常手机如何打三方通话参考过去曾经有一种电话线路……
如何创建一个流程图在本文中:设计概念在Excel中创建一个流程图在Word创建一个流程图流程图能够分解很难理解的流程,让概念变得简单易懂。一个成功的流程图要兼顾需要传达的信息与表达的简洁性……
如何学习C语言编程在本文中:准备工作变量的使用使用条件语句学习循环语句使用函数不断学习参考诞生于上世纪70年代的C语言是一门古老的语言了,但作为一门底层语言,时至今日它仍然非常强大。学习C……
如何把勺子折弯在本文中:首先把勺子弄软误导你的观众参考你曾经看见过一个魔术师在观众面前把勺子折弯,然后很好奇那是怎样做到的吗?尽管用超能力现象来解释折弯勺子是完全不可信的,它仍然是一个……
如何求等差数列之和在本文中:评估数列计算总和完成例题参考等差数列是每一项与它的前一项的差等于一个常数的数列。如果要求等差数列之和,你可以将所有数字手动相加。但是,当数列包含大量数字时,就无……
如何绘制饼图在本文中:如何自制饼状图饼状图能够简洁地显示各个分类项在总体的分布情况。无论是分析选举人数,统计数据抑或是管理财产整合数字,只要通过饼状图便能达到很好的解释分析。因此,在……
如何计算正方形的对角线在本文中:知道正方形的边长知道正方形的周长知道正方形的面积5参考正方形的对角线是连接两个对角的线段。要算出其对角线长度,你可以用公式{displaystyleds{……
如何门门功课都拿优在本文中:一般做法在班上努力学习在家里努力学习有用的学习小提示和技巧参考做个优等生不代表你必须每时每刻都学习而没有了社交生活。你总会有进步的空间,所以时时检查你所做的一切……
如何做到明确有力的表达在本文中:听起来更聪明更好地表达看得更远参考表达明确会让人觉得你有非常好的教育背景和清晰的思维,也会让人更愿意听你述说,并尊重你的才智。不管是在做汇报,还是尝试给你的好朋……
如何区分than和then在本文中:使用实例很多人会误用than和then,或许是因为它们发音类似,或许是有些词义上的混淆,总之,知道如何区分它们并用到恰当的场合中是最重要的。Followthis……
如何将十六进制换算为二进制和十进制在本文中:十六进制数据的换算十六进制换算为十进制十六进制换算为二进制你是如何将这些有趣的字母、数字组合(十六进制)换算成我们常用的十进制数据的呢?你知道如何将十六进制换算……
如何提高你的英语口语技能在本文中:在家提高英语水平和他人一起提高英语训练你的大脑6参考在四项语言技能中,口语通常是最难的。听力和理解,阅读和写作是一回事,要不脸红不心跳跟一位英语母语的人交流,而……
如何在没有天气预报的情况下来预测天气在本文中:观察天空感受风和空气观察动物的行为创造你自己的预测方法参考在预测天气的技术完善之前,很长时间人们都是依赖简单观测、物体的图样以及民间传说来试图提防各种恶劣天气。……
如何成为科学家在本文中:打基础提升学历心理素质要求6参考科学家的工作是研究宇宙或宇宙内的某一部分是怎样运作的。科学家门在先前发现的基础上提出假设,然后通过观察和实验来检验假设,用结果来……
如何求出两点间的垂直平分线在本文中:汇总信息求解直线方程参考穿过一条线段的中点并与之垂直的直线,被称为垂直平分线。要求出两点间的垂直平分线,只用找到这两点的中点和负倒数,然后再把相应值代入直线的斜……
如何画线图在本文中:第一部:标出坐标标入数据参考线图(曲线、折线)可以揭示因变量和自变量之间的变化关系。比如你可以画个动物生长率和时间的关系图,或者城市平均高温和月份的关系图。也可……
如何计算圆面积在本文中:圆面积计算扇形面积特殊圆形量度圆形物体的直径参照以下步骤计算圆面积。您也能学习到计算扇形面积的方法,扇形即圆形的一个切片,就像一个馅饼或比萨的切片一样。方……
如何进行科学实验在本文中:设计科学合理的实验进行示例实验实验是科学家们通过测试自然现象获得新认识的方法。正确的实验遵循有逻辑的设计分离和测试具体、准确界定的变量。通过学习实验计划背后的基……
如何使用灭火器你在一生中很大可能会遇到一次失控的火灾,所以了解如何使用灭火器非常重要。本文为你解释在紧急情况下使用灭火器的过程。步骤1:在尝试扑灭大火前先求助。火势可能在你能处理……
如何利用统计数据撒谎在本文中:利用平均数撒谎利用数据集撒谎利用图表撒谎每个善于观察细节的人都知道,如果你没有相关的知识背景,那么有些统计数据可以非常狡猾地骗过你。看一看下面这些步骤,学习一下……
如何学习美式手语在本文中:必备知识学习方法实践经验美式手语是一种非常美的语言,但可惜很多人都读不懂。你可以按照学习其他外语的方法进行学习,这种手语一般适用于美国、加拿大等地区。手语还有其……
如何把自己变成一个作家在本文中:激发灵感把灵感用文字表达出来真相法则5参考写作的艺术在于如何把个人经历巧妙地写成生动优美的文章。写作是一种技术活儿,需要掌握一些文学技巧,并且在其领域内有一些固……
如何测量包装箱的长宽高在本文中:测量普通包裹的尺寸计算体积重量无论你选择哪家快递公司,寄出包裹的费用都取决于包裹的大小。为了确定应付的邮费,必须要知道寄出物品的包装箱尺寸。使用可靠的测量工具测……
如何给孩子们画画孩子们喜欢画画,他们可以通过这种方式表达自己,并且在此过程中创造一段持久的记忆。不过有时候孩子们需要有人给他们一些激励和启发,这样他们才能更好地继续创作,而这个时候,你就该给他……