学习笔记——《C Primer Plus》
第2章 C语言概述
- 2.1 简单的C程序实例
- 2.2 实例解释
- 2.2.1 快速概要
- 1. #include指令和头文件
- 2. main() 函数
- 3. 声明
- 4. 赋值
- 5. printf() 函数
- 5. return 语句
- 2.3 简单程序的结构
- 2.4 多个函数
2.1 简单的C程序实例
#include <stdio.h>
int main(void){int num; //定义一个名为num的变量num = 1; //为num变量赋初值print("I am a simple"); //使用printf()函数print("computer.\n");print("My favorite number is %d because it is first.\n",num);getchar();return 0;
}
2.2 实例解释
2.2.1 快速概要
1. #include指令和头文件
#include <stdio.h> //包含另一个文件:标准输入/输出头文件。//#号表明,C预处理器在编译器接手之前处理这条指令。
该行告诉编译器把stdio.h中的内容包含在当前程序中。stdio.h是C编译器软件包的标准部分,提供键盘输入和屏幕输出的支持。
头文件包含了编译器创建最终可执行程序要用到的信息。简而言之,头文件帮助编译器把程序正确地组合在一起。
2. main() 函数
int main(void) //int表明main()函数返回一个整数,void表明main()不带任何参数
{ //左花括号表示函数定义开始...
} //右花括号表示函数定义结束
C程序包含一个或多个函数,它们是C程序的基本模块。
3. 声明
int num; /*该句完成两个任务:1.在函数中有一个名为num的变量;2.int表明num是一个整数,编译器为num变量在内存中分配存储空间。num是一个标识符(identifier),也就是一个变量、函数或其它实体的名称。标识符第一个字符必须是字符或下划线,不能是数字,且区分大小写。*/
这行代码叫作声明(declaration)。声明把特定标识符与计算机内存中的特定位置联系起来,同时也确定了储存在某位置的信息类型或数据类型。
在C语言中,所有变量都必须先声明才能使用,这意味着必须列出程序中用到的所有变量名及其类型,还要求把变量声明在块的顶部,其它语句不能在任何声明的前面。(C99和C11,可以把声明放在块中任何位置。)
(1)把所有变量放在一起,方便读者查找和理解程序的用途,变量名命名必须有意义。
(2)声明变量会促使你在编写程序之间做一些计划。如要获取哪些信息?如何输出?表示数据最好的方法是什么?
(3)声明变量有助于发现隐藏在程序中的小错误。
4. 赋值
num = 1;
在执行int num;声明时,编译器在计算机内存中为变量num预留了空间,然后在执行赋值表达语句时,把值储存在之前预留的位置。
5. printf() 函数
printf(“computer.\n”); //print()函数是标准的C库函数。/*当程序运行到这一行时,控制权被转给已命名的函数(printf()),函数执行结束后,控制权被返回至主调函数(calling function),该例中的main()*/
在程序中使用函数叫作调用函数。printf()是一个标准函数。圆括号中的内容是从main()函数传递给print()函数的信息,例如把computer传递给printf()函数,该信息被称为参数,更确切地说是函数的实际参数(actual argument),是传递给函数的特定值。形式参数是函数中用于储存值的变量。
print("My favorite number is %d because it is first.\n",num);
%d相当于一个占位符,其作用是指明输出num值的位置。
5. return 语句
return 0; //return关键字后面是待返回的值,并以分号结束。
C函数可以给调用方(操作系统) 提供(或返回)一个数。
2.3 简单程序的结构
#include <stdio.h>
int main()
{语句;return 0;
{
2.4 多个函数
把自己写的函数加入程序中:
#include <stdio.h>
void butler(void) //C函数原型(prototype):告知编译器在程序中要使用该函数。
int main()
{printf("I will summon the butler function.\n");butler(); //以函数调用(function call)的形式出现在main()中。printf("Yes. Bring me some tea and writeable DVDs.\n");return 0;
}
void butler(void) //函数定义(function definition):函数定义即是函数本身的源代码。
{printf("You rang, sir?\n");
}
(1)函数原型是一种声明形式,告知编译器正在使用某函数,因此函数原型也被称为函数声明(function declaration)。函数原型还指明了函数的属性。
(2)在main()函数中调用butler()很简单,写出函数名和圆括号即可。当butler()执行完毕后,程序会继续执行main()中的下一条语句。
(3)何时执行butler()函数取决于它在main()函数中被调用的位置,而不是butler()的定义在文件中的位置。
(4)C的惯例是把main()函数放在开头,因为它提供了程序的基本框架。