C Primer Plus------第二章 C语言概述
2.1 一个简单的C程序示例
#include<stdio.h>
int main(void)
{
int num; /*定义一个变量num*/
num=1; /*为num赋值*/
printf("I am a simple "); /*调用函数printf()*/
printf("computer.\n");
printf("My favorite number is %d because it is first .\n",num);
return 0;
}
2.2 示例解释
2.2.1 快速概要
程序 | 解释 |
---|---|
#include<stdio.h> | 包含另一个文件,他告诉编译器把stdio.h中的内容包含到当前程序中。stdio.h是C编译器软件包的标准部分,他提供键盘输入和屏幕输出的支持。 |
int main(void) | 函数名,C程序包含一个或是多个函数,他们是C程序的基本模块。int表示main()函数返回一个整数,void表明main()函数不带任何参数,int和void是ANSI C定义的main()函数的一部分,如果使用ANSI C之前的编译器,需要省略void。 |
/**/ | 注释 |
{ | 函数体开始 |
int num; | 声明 |
num =1; | 赋值表达式 |
printf(“I am a simple”); | 调用一个函数 |
return 0; | return语句 |
} | 函数体结束 |
2.2.2 程序细节
1、#include指令和头文件
include实际上就是一种“拷贝-粘贴”的操作,include文件提供了一种方便的途径共享许多程序共有的信息。#include这行代码是C预处理指令,通常C编译器再编译前会对源代码做一些准备工作,即预处理。
在C程序顶部的信息集合被称为头文件。在大多数情况下,头文件中包含了编译程序需要的信息。例如,头文件中可以定义一些常量,或者指明函数名以及如何使用他们。但是,函数的实际代码在一个预编译代码的库文件中。简而言之,头文件帮助编译器把你的程序正确的组合起来。ANSI/ISO C规定了C编译器必须提供哪些头文件。省略必要的头文件可能不影响某一个特定程序,但是最好不要这样做。
2、main()函数
int main(void) C程序一定从main()函数开始执行。int是main()函数的一个返回类型,这个整数会返回给操作系统。通常函数圆括号中包含一些传入函数的信息。这里的主函数中没有需要传入的信息,所以是void。注意C99和C11标准标准不允许main()这样的书写方式,必须为main(void),另外void main()也不是标准的写法。
3、注释
标识 | 解释 |
---|---|
/**/ | 多行注释 |
// | 单行注释 |
4、花括号、函数体和块
一般来说,所有的C函数都要使用花括号标记函数体的开始和结束。花括号还可以用于把函数中的多条语句合并为一个单元或块。
5、声明
int num; 这行代码叫做声明。声明是C语言的最重要的特性之一。int(关键字)是一种数据类型,num(标识符)是一个变量名。声明把特定的标识符与计算机内存中的特定位置联系起来,同时也确定了存储在某位置的信息类型和数据类型。在C语言中,所以的变量都需要先声明之后才能使用。C99和C11遵循C++的惯例,可以把变量的声明放在块中的任何位置,但是首次使用前注意先声明。C99之前的规则,变量是需要声明在块的顶部的。
C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符。对于外部标识符,只允许使用31个字符。标识符可以使用字母、数字和下划线来命名,第一个字符不能为数字。操作系统和C库一般使用一个或是两个下划线字符开始的标识符,因此最好避免在自己的程序中使用这种名称,这样可以防止命名冲突。
为何要声明变量:
- 把所有的变量放在一起,方便查找和理解程序的用途。
- 声明变量可以促使你在编程之前做一些计划。
- 声明变量可以有助于找到程序中的小错误。
- 如果未声明变量,C程序将无法通过编译。
6、赋值
num =1;是赋值表达式语句。赋值是C语言的基本操作之一。在执行int num;声明时,编译器已经在计算机内存中为变量num预留了空间,在执行这个赋值表达式语句时,把值存储到之前预留的位置。
7、一般函数 printf()
printf()是C语言的一个标准函数,printf是函数名,圆括号中的内容是从main()函数中传递给printf()函数的信息(参数)。在C语言中,传递给函数的特定值叫做函数的实际参数,形式参数是函数中用于存储值的变量。这里的例子中main()是printf()的主调函数。
8、return 语句
强烈建议保留main()主函数中的return语句,这是一个好的编程习惯。
2.3 函数声明(函数原型)、函数定义、函数调用
#include<stdio.h>
void butler(void); //函数声明
int main(void)
{
butler(void); //函数调用
return 0;
}
//函数定义
void butler(void){
printf("computer");
}