欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第二 认识C语言程序

程序员文章站 2022-05-12 16:15:14
...

 

第一 VS编译C语言

第二 认识C语言程序


 

    首先先看一个简单的C语言程序,通过程序来认识C语言

#include <stdio.h>

/*************************** 说明 ********************************

功能:打印一个程序,通过修改数值显示我的第n个程序并暂停控制台		
函数设计说明:
num:第n个程序;类型:int
时间:2019.12.23
作者:陈

****************************************************************/
int main(void) {

	int num;	//定义一个名为num的变量 
	num = 1;	//为num赋一个值 
	printf("Hello Word \n");	//使用printf()函数 
	printf("我的第 %d ", num);
	printf("个程序!\n");
	system("pause");
	return 0;
}

    上面的程序功能就是显示屏输出一段文字,(如果不知道怎么运行程序,参考这里)。如果一切运行正常,该程序的输出应该是:

    Hello Word
    我的第 1 个程序!

下图组成C程序的几个部分,图中包含的元素比上诉程序多

第二 认识C语言程序

1、简述程序中的每行代码的作用,具体功能后续详解

#include<stdio.h> ←包含另一个文件

该行告诉编译器把stdio.h中的内容包含在当前程序中。stdio.h是C编译器软件包的标准部分,它提供键盘输入和屏幕输出的支持。


int main(void)    ←函数名
C程序包含一个或多个函数,它们是C程序的基本模块。程序清单2.1的程序中有一个名为main()的函数。圆括号表明main()是一个函数名。int表明main()函数返回一个整数,void表明main()不带任何参数。这些内容我们稍后详述。现在,只需记住int和void是标准ANSI C定义main()的一部分(如果使用ANSI C之前的编译器,请省略void;考虑到兼容的问题,请尽量使用较新的C编译器)。

 

/* 说明 */   ←注释

//定义一个名为num的变量 
    注释在/*和*/两个符号之间或者//后面,这些注释能提高程序的可读性。注意,注释只是为了帮助读者理解程序,编译器会忽略它们。

 

{    ←函数体开始
    左花括号表示函数定义开始,右花括号(})表示函数定义结束。


int num;   ←声明
    该声明表明,将使用一个名为num的变量,而且num是int(整数)类型。


num = 1;   ←赋值表达式语句
    语句num = 1;把值1赋给名为num的变量。

 

printf("Hello Word \n "); ←调用一个函数
    该语句使用 printf()函数,在屏幕上显示Hello Word ,光标停在下一行。printf()是标准的C库函数。在程序中使用函数叫作调用函数。代码\n告诉计算机另起一行,即把光标移至下一行。

printf("我的第 %d .\n", num);  ←调用另一个函数
    接下来调用的这个printf()函数在上条语句打印出来的内容后面加上“我的第num”,printf()把num的值(1)内嵌在用双引号括起来的内容中一并打印。%d告诉计算机以何种形式输出num的值,打印在何处printf("个程序!\n");
    最后调用的printf()“个程序”打印完。

system("pause");       ←暂停控制台
return 0;  ←return语句
    C函数可以给调用方提供(或返回)一个数。目前,可暂时把该行看作是结束main()函数的要求。
}    ←结束

    必须以右花括号表示程序结束。

2、程序详解

1.#include<stdio.h>
    这是程序的第1行。#include <stdio.h>的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。实际上,这是一种“拷贝-粘贴”的操作。include 文件提供了一种方便的途径共享许多程序共有的信息。#include这行代码是一条C预处理器指令(preprocessor  directive)。通常,C编译器在编译前会对源代码做一些准备工作,即预处理(preprocessing)。

    所有的C编译器软件包都提供stdio.h文件。该文件中包含了供编译器使用的输入和输出函数(如, printf())信息。该文件名的含义是标准输入/输出头文件。通常,在C程序顶部的信息集合被称为头文件(header)。在大多数情况下,头文件包含了编译器创建最终可执行程序要用到的信息。例如,头文件中可以定义一些常量,或者指明函数名以及如何使用它们。但是,函数的实际代码在一个预编译代码的库文件中。简而言之,头文件帮助编译器把你的程序正确地组合在一起。ANSI/ISO  C规定了C编译器必须提供哪些头文件。有些程序要包含stdio.h,而有些不用。特定C实现的文档中应该包含对C库函数的说明。这些说明确定了使用哪些函数需要包含哪些头文件。例如,要使用printf()函数,必须包含stdio.h头文件。省略必要的头文件可能不会影响某一特定程序,但是最好不要这样做。本书每次用到库函数,都会用#include指令包含ANSI/ISO标准指定的头文件。

2.main()函数
int main(void);
   上诉中的第2行表明该函数名为main。的确,main是一个极其普通的名称,但是这是唯一的选择。C程序一定从main()函数开始执行(目前不必考虑例外的情况)。除了main()函数,你可以任意命名其他函数,而且main()函数必须是开始的函数。圆括号有什么功能?用于识别main()是一个函数。很快你将学到更多的函数。就目前而言,只需记住函数是C程序的基本模块。

    如果浏览旧式的C代码,会发现程序以如下形式开始:
main()
C90标准勉强接受这种形式,但是C99和C11标准不允许这样写。因此,
即使你使用的编译器允许,也不要这样写。
你还会看到下面这种形式:
void main()
    一些编译器允许这样写,但是所有的标准都未认可这种写法。因此,编译器不必接受这种形式,而且许多编译器都不能这样写。需要强调的是,只要坚持使用标准形式,把程序从一个编译器移至另一个编译器时就不会出什么问题。

3.注释

    多行注释
/****  说明 *****/

    在程序中,被/* */两个符号括起来的部分是程序的注释。写注释能让他人(包括自己)更容易明白你所写的程序。C 语言注释的好处之一是,可将注释放在任意的地方,甚至是与要解释的内容在同一行。较长的注释可单独放一行或多行。在/*和*/之间的内容都会被编译器忽略。下面列出了一些有效和无效的注释形式:

/* 这是一条C注释。 */
/* 这也是一条注释,
被分成两行。*/
/*
也可以这样写注释。
*/
/* 这条注释无效,因为缺少了结束标记。

单行注释
// 这种注释只能写成一行

 

4.花括号、函数体和块
{
...
}

    上诉程序中,花括号把main()函数括起来。一般而言,所有的C函数都使用花括号标记函数体的开始和结束。这是规定,不能省略。只有花括号({})能起这种作用,圆括号(())和方括号([])都不行。花括号还可用于把函数中的多条语句合并为一个单元或块。
5.声明
int num;
    上诉程序中,这行代码叫作声明(declaration)。声明是C语言最重要的特性之一。在该例中,声明完成了两件事。其一,在函数中有一个名为num的变量(variable)。其二,int表明num是一个整数(即,没有小数点或小数部分的数)。int是一种数据类型。编译器使用这些信息为num变量在内存中分配存储空间。分号在C语言中是大部分语句和声明的一部分。

6.赋值
num = 1;
    程序清单中的这行代码是赋值表达式语句[2]。赋值是C语言的基本操作之一。该行代码的意思是“把值1赋给变量num”。在执行int  num;声明时,编译器在计算机内存中为变量num预留了空间,然后在执行这行赋值表达式语句时,把值储存在之前预留的位置。可以给num赋不同的值,这就是num之所以被称为变量(variable)的原因。注意,该赋值表达式语句从右侧把值赋到左侧。

7.printf()函数
printf("Hello Word \n");   
printf("我的第 %d ", num);
printf("个程序!\n");
    这3行都使用了C语言的一个标准函数:printf()。功能是把括号内的字符串输出到显示设备

8.return语句
return 0;

    return语句[3]是上诉程序的最后一条语句。int main(void)中的int表明main()函数应返回一个整数。C标准要求main()这样做。有返回值的C函数要有return语句。

 

具体介绍就到这便,有问题可以留言!我看到回复

相关标签: C语言学习