当前位置:编程学习 > C/C++ >>

从C语言实战谈编程:hello world 程序解析

 

上篇要点回顾和点评:

 

1、            上篇谈了学习一门新语言要学会思考。请问,思考什么?

 

2、            上篇谈了编程流程,请问流程是什么?

 

3、            你自己编了helloworld程序了吗?一次编辑、编译成功了吗?

 

回答完了以上内容,请继续下面的内容。

 

本篇将对Hello world 程序作深入的解析

 

我们学习语言,要有好的学习方法,这就是学习或编写最少的语句,能达到对语言最佳的掌握。记住“最少”这两字。实际中很多程序员没有这个概念,能写上上千万万行程序,但是对其语言依然掌握不透。这就因为他们头脑里只看到具体的语句,具体的功能,看不到“抽象的语句、抽象的功能”,不能掌握语言的规律和原理,不能掌握学习语言的方法和技巧,不能举一反三。这些是新手们特别要注意的,千万不要向他们学呀。

 

不知道大家对上篇的a.c能总结点啥。一定会有人说,不就是显示一句helloworld吗?是最简单的程序了。我认同这是一个简单的程序,而且大家的关注点都在显示“hello world!”那一条语句上。但是,简单不简单,这个简单的程序包含了很多重要的内容。每行都是宝,都有讲头,都少不了。

 

通过这个程序我们应该掌握什么?

 

1、           一个完整的程序是什么。

 

 #include “stdio.h”

 

 main()

 

 {

 

       fprintf(stdout,”hello world!\n”);

 

      exit(0);

 

 }

 

  这就一个最简单的完整程序,只有6行。但是它告诉我们,一个C语言是由两个部分组成:定义和函数,至少有一个主函数。第一行#include “stdio.h”我们可以把它看做定义部分。第二行到第六行我们把它看做函数部分。知道这个组成有什么用?我们就可以对我们以后编的程序进行评判了。如果我们的程序没有定义,或没有主函数则一定不是个完整的。有人会说,我就不需要定义,我说行,那只是一种例外,99.99%的应用C语言都是要有定义的。对于新手来说,我们先不学例外,我们先学些正常的。学了这个构成,我们在编写C语言的时候,我们就会在想两个问题:我们的定义是什么?我们的函数是什么?

 

先记住这两个部分,今后我们还会对这两个部分进行深入的分析,比如,定义部分再怎么分,函数部分再怎么分。

 

2、           程序的main

 

   main这个函数也是一个语言的重要内容,有人会问,为啥必须要main函数?我写个aaa函数不行吗?如果你编写的是一个可执行程序,那可能真的不行,运行这个程序必须有一个统一唯一的入口,而C语言的这个入口这就是main。不是吗?如果没有main,你在程序中编了a函数,b函数,程序怎么知道先执行那个?是不是那个在前就先执行那个?那个在先,就先执行那个也是一种算法,但是,也有例外(今后会看到)。所以,人家规定了main为程序的入口是有它的道理的。

 

    你跟他说main,他马上会说知道了。是真的知道吗?要真的掌握main的道理,就会在学习其他语言时候,就会有意识地去找相应的入口函数。比如,VFP中的load,C#窗体中的page_Load都是一个程序的最初的入口。

 

记住只要有多个函数必然就有一个主函数,找到主函数我们就可以进行最初的处理。比如初始化什么的。

 

当然,随着语言的发展,一些语言的主函数是可以通过用户定义的了。但是,其原理还是不变的。

 

3、           程序的语法

 

    大家老是说语法语法的,什么是语法?语法就是语言的规定,是语言的法律,违背了这个规定,这个程序就玩不转,就出错。看来我们程序员编程也要受逃脱不了法制社会的约束呀。

 

 1)#include “stdio.h”

 

      意为包含文件,也是引用的意思。语法就是#include+“”+文件名。

 

如果,你把include 拼错了、没有加#、不是成对的双引号、后面多加了分号。

 

则编译通不过了,出错了,违法了嘛。

 

 2)main()

 

 意为主函数,是程序的最先的入口。函数后面必须有一对刮号。如果你换了成大刮号,换成中刮号,或只有一个小刮号,或后面加了分号就不符合语法了,出错了。函数后面是一对小刮号且没有分号就是一个语法规定。

 

3){,}是函数体边界符合,在此之内都属于这个函数。不能少一个,多一个大刮号。

 

 

 

4、           函数的调用

 

编程序最常用的方法就是函数调用,函数调用就是避免重复编写编码,用现有的编码。由于,C语言中的函数调用是不收费的,能调用还不调用?虽然这是一句调侃。但是,调用函数绝对是程序员最重要的任务之一,程序员不但要调系统函数,而且要调用他人的函数,更多的是要调用自己的函数。本程序有两个函数调用:

 

1)fprintf(stdio,“hello world!\n”);

 

记住函数调用要掌握:函数名+参数+;这三个部分。

 

下次写函数调用一定要记住呀。少一个都不行。这个真的要记住,记住了就会在调用函数时,或想调用函数时,考虑函数名是什么?函数的参数是什么?“;”是不是忘掉写了。

 

   在很多情况下,我们往往会注重前两者,忘记“;” 结果编译总是出错。如果你是初学者,一定要把这基础打好,在今后的编程中不要出现这个问题。

 

    只是,当你学了不同的语言后,你往往会混淆,比如VFP中语句后面就没有“;”。这个时候,你就会在VFP中加分号,在C语言不加分号,让人哭笑不得。

 

2)exit(0);

 

  这是一个退出程序的函数。有进必有出。有了出,你就可以在程序中随时中断处理,退出程序。退出函数也很重要,初学者也要牢记。参数中的0,表示程序返回值为0。在80%的情况下,程序的返回值是没有什么用的,我都处理完了,返啥都一个样。但是,在一个大的项目中,在程序之间易做图的时候,返回值就可能是一个重要的纽带,那你就会要学会使用程序的返回值。好在我们后面的实战中有这方面的例子。这里你就会使用exit(0);就行了。一些老一点程序员会大喊,我不用exit(0),程序照样退出来。是的,没有exit(0),程序退出来的,但是,作为一个完整的程序而言,有进有出还是必须的。省了一条语句功能上应该没啥问题,但是失去了可读性了。还是加上exit(0)吧,正规的编写,会产生好的习惯,而好的习惯会让你更加正规。

 

 

 

5、           .h的引用

 

.h文件,往往是一个定义文件,定义一些常量、结构、外部数据,有些定义是有条件的。一般情况下,一个C语言至少要引用3个以上的系统文件。意为包含文件,也是引用的意思。从直白上来说,它将一部分源程序放到了外部了。这样自己的源程序看起来更加简洁。对于新手来说,#include 一般都包含一些系统的*.h 例如stdio.h 可读作“标准io”。对以高手来说#include会包含一些自己的.h

 

       #include 后面有“”,<> 两种方式包含文件。一般用“”就行了。除非你不用<>不行。这里我特地停下来谈一下实用问题。学语言强调就是一个实用,不是让你成为一个语言学家。就#include 而言,你掌握一种包含方法就行了,不必要弄清两者的区别。因为,在你若干年之内,可以说,你是很难取一个和系统相同的.h文件的。如果,你非要学一个从系统目录开始搜寻,一个从当前目录开始搜寻差别有意义吗?有意义的事多的去,就怕你没有时间去学。

 

记住:

 

1)#include一般情况下引用的定义文件,在特殊情况下也可以引用函数文件。或定义与函数相结合的文件。

 

2)#include一般情况下引用的是系统的文件,在特殊的情况下,可以引用自己的定义文件和函数文件。

 

6、           关键字

 

程序虽然只有六行,但是,像include,main都是关键字。所谓关键字就是系统启用的名字。你就不能起相同的名字了。比如,你就不能自己起一个名为main的

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,