上篇我们写了一个最简单的程序。这个简单的程序包含了很多重要的内容。本篇我们通过这个最简单的Hello World程序逐一讲解C语言程序的一些特点。

打开Visual Studio 2013

通过菜单->打开->项目/解决方案打开上次写的Helloworld代码。

打开上次成的解决方案“C语言基础.sln”

得到上次的程序如下:

#include<stdio.h>
#include<stdlib.h>
/*开始我的第一个C语言程序!*/
int main(void)
{
printf("Hello,world.\n");
system("pause"); /*使程序运行结束后暂停,防止结果一闪而过*/
return0;
}

1、完整的程序。

上面的Helloworld就是一个最简单的完整程序,只有9行。一个C语言是由两个部分组成:定义和函数,至少有一个主函数。前两行#include<stdio.h>和#include<stdlib.h>可以把它看做定义部分。第4行到第9行是数部分。知道这个组成有什么用?我们就可以对我们以后编的程序进行评判了。如果程序没有定义,或没有主函数则一定是不完整的。

2、程序的主函数

程序的第四行是主函数的开始。main这个函数是C语言的重要内容,如果我们编写的是一个可执行程序,运行这个程序必须有一个唯一的入口,C语言的这个入口就是main。

3、程序的语法

语法就是语言的规定,是语言的法律,违背了这个规定,这个程序就不能编译通过。

1)#include “stdio.h”

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

如果,你把include 拼错了、没有加#、不是成对的双引号、后面多加了分号。则不能编译通了,因为违反了语法规则。

2)main()

意为主函数,是程序的最先的入口。函数后面必须有一对小括号。前面的int是这主函数的返回值,用来告诉操作系统程序结束时的运行状态

3) {…}是函数体边界符合,在此之内都属于这个函数。

4、函数的调用

编程序最常用的方法就是函数调用,函数调用就是避免重复编写编码,用现有的编码。在编码过程中,不但要调系统函数,而且要调用他人的函数,更多的是要调用自己的函数。本程序有一个函数调用:

printf("Hello, world.\n");

函数调用要记住:函数名+参数+; 这三个部分,缺一不可。在很多情况下,我们往往会注重前两者,忘记“;”结果导致编译出错。如果作为初学者,一定要注意这个问题。

5、.h的引用

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

6、关键字

程序虽然只有9行,但是include,main都是关键字。所谓关键字就是系统启用的名字。如果我们定义函数或变量,不能和关键字相同。比如,你就不能自己起一个名为main的函数。后面我们将会遇到更多的关键字,例如:if、else、while int char等等。

7、转义符

程序中printf("Hello,world.\n");的语句中\n是转义符。\n是换行的意思。n 可以记为new line.这样就好记一些。在C语言中,一些不可显示的控制字符,是通过转意符加符号表示的。与\n一起的还有\r回车符(return)等。另外,一些关键字符\平常化,则要加\,例如\\表示\。

转义符这个在C语言中也是比较重要的概念,也是常用的。

8、返回值

程序中return 0;的作用是,在程序结束时,返回给操作系统一个状态,这个状态用来告诉操作系统程序的执行情况,一般正常情况下返回0.

9、注释

程序中被 /* */ 标记的部分是注释。注释部分不会被编译。可以在注释部分中对程序进行说明。

C语言入门(3)——对Hello World程序的解释的更多相关文章

  1. 【C语言入门教程】3.1 程序的 3 种基本结构

    程序设计是一个问题求解的过程,解决问题的步骤可看作是程序的控制结构.简单地说,程序的运行过程就是数据输入.数据处理.数据输出 3 个步骤.其中,数据处理过程是否快捷和准确,主要依赖于程序控制结构的设计 ...

  2. C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序

    在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...

  3. C语言编程入门之--第一章初识程序

    第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...

  4. 我为什么反对推荐新人编程C/C++语言入门?

    虽然我接触编程以及计算机时间比较早,但是正式打算转入程序员这个行当差不多是大学第四年的事情 从03年接触计算机,07年开始接触计算机编程, 期间接触过的技术包括 缓冲区溢出(看高手写的shellcod ...

  5. 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书

    <C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...

  6. c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数 ...

  7. 【转】c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码 初级:C语言入门必备 (以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言 ...

  8. Swift语言入门之旅

    Swift语言入门之旅  学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序開始的.那在 Swift,我们使用一句话来实现它: printl ...

  9. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

随机推荐

  1. 转载:MyEclipse启动Tomcat缓慢的原因及解决办法

    转自linux公社 不知道朋友们是否有一种烦恼:有时候使用MyEclipse启动Tomcat十分缓慢,可能在几分钟前20秒以内,但现在却需要200秒开外:其间内存和CPU都被占用地厉害,而控制台的输出 ...

  2. js问题学习

    1.前言为了node.js做准备,js的基本功还是很重要的.所以正值1024程序员节的时候所以找了些题目,整理了一下知识点.这篇文章感觉代码太多,难免枯燥,所以文章最后留了个彩蛋给读者. 2.简单回调 ...

  3. jquery序列化元素

    序列化元素: 做项目的时候,表单是必不可少的,经常用来提交数据,例如注册.登陆等.常规的方法是使表单提交到另外一个页面,整个浏览器都会被刷新,而使用Ajax技术则能够异步地提交表单,并将服务器返回的数 ...

  4. 将warning设为错误

    在程序编写过程中,我们有时会因为现实情况将现在无法实现的部分功能设为warning #prama warning ------------------ 为了方便查找warning,或查看某部分的警告, ...

  5. iOS把一个简单的图形变成一个圆

    push是定义的一个button push.layer.masksToBounds = YES; push.layer.cornerRadius = 100; push.layer.borderWid ...

  6. PBOC2.0安全系列之—脱机认证之动态数据认证(DDA)

    动态数据认证: 一,什么是动态数据认证(DDA) 由于上篇<< PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)>>已经对静态数据认证部分做了详细的分析,一些基本知识 ...

  7. 普林斯顿大学算法课 Algorithm Part I Week 3 归并排序 Mergesort

    起源:冯·诺依曼最早在EDVAC上实现 基本思想: 将数组一分为(Divide array into two halves) 对每部分进行递归式地排序(Recursively sort each ha ...

  8. javascritp第十课:面向对象

    js中的函数就是对象,对象就是函数,当js中需要使用面向对象,使用js闭包模拟面向对象,当函数作为对象使用时,每个单词首字母都大写 var obj=new object();  //js中默认就是ob ...

  9. MySQL报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)

    1.关闭mysql   # service mysqld stop2.屏蔽权限   # mysqld_safe --skip-grant-table   屏幕出现: Starting demo fro ...

  10. Excal数据转化成Asset数据文件

    我们知道,在Unity当中的文件都可以称之为Asset文件,在项目开发当中需要把数据读取来之后存放起来,而有的数据是不可以改变的,今天就来写一个demo处理一下这些数据,在这里就不写读取Excal数据 ...