2.1 简单的C程序示例
//一个简单的C程序,可以在VS2017之类的集成开发环境下写这个程序。另外,如果程序运行时一闪而过,可以在return 0;语句前面加一句getchar(); ,可以让程序等待按下一个按键。
//初学者会有很多地方看不懂,有个印象就行。
first.c 程序
#include<stdio.h>
int main(void) /*一个简单的C程序*/
{
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 示例解释
1. #include指令和头文件
#include<stdio.h>
相当于把stdio.h文件的所有内容复制到这里
stdio文件是标准输入\输出头文件,包含了输入和输出函数。
#include这一行代码是一条C预处理器指令
2. main()函数
Int main(void);
C程序总是从main()函数开始执行 //当前就这样认为
Int 是main()函数的返回类型,// int 是整数
这个值将返回给操作系统
()内的是传入函数的信息,该例没有传递信息,所以写void
或者就直接空着
3. 注释
注释是对程序的解释,为了让人能看懂程序。对机器来讲没有意义。
/* 一句注释 */
/* */中间的部分是程序的注释,
也可使用另一种方式写注释
// 双斜杠后面可以写一行注释
4.花括号、函数体和块
{
…
}
C函数使用花括号来标记函数体的开始和结束。
此外,花括号还可将多条语句合并成一个语句块(相当于一条语句)。
5.声明
Int num;
这句声明了一个类型为int(整数)的变量num
C语言的变量要先声明才能使用
C99之前要求声明置于块的顶部。
C99之后允许在需要时才声明,位置更加灵活。
声明变量的理由:
- 把所有的变量放在一处,方便读者查找和理解程序的用途
- 声明变量会促使你在编程之前做一些计划
- 声明变量有助于发展隐藏在程序中的小错误,如变量名的拼写错误
- 如果事先未声明变量,C程序将无法通过编译
在C99之前的标准要求把声明都置于块的顶部 优点:把声明放在一起方便理解程序的用途
C99允许在需要时声明变量 优点:在给变量赋值之前声明变量,就不会忘记给变量赋值
缺点:许多编译器都还不支持C99
6.赋值
num = 1; //将值1 赋给变量 num
PS:C语言是通过赋值运算符而不是赋值语句来完成赋值操作的
7. printf函数
printf(“I am a simple “);
这是一个标准库函数,用于打印信息。
printf("My favorite number is %d because it is first. \n", num);
参数中的%在提醒程序,要在该处打印一个变量,d表明把变量作为十进制整数打印
printf()函数名中的f提醒用户,这是一个格式化打印函数
8. return 0;
函数返回 0;
2.3 简单程序的结构
程序由函数组成。
必须有main函数(main是入口函数,可以认为程序从main函数开始)
函数由函数头 和 函数体组成。
函数头格式为 返回值类型 函数名(需要传入的参数)
函数体格式是{ …} 即花括号括起来的一些语句
一般的简单C程序格式如下:
#include<stdio.h>
Int main(void)
{
语句
return 0;
}
2.4 提高程序可读性的技巧
1.选择有意义的函数名和变量名 //特别是程序较大时,尽量给变量和函数起个好名字,不会混淆
2.合理的注释
3.空行分隔 概念上的多个部分
4.每条语句独占一行
2.5 进一步使用C
这里又举了一个和上面的差不多的例子,略
2.6 多个函数
一个程序可以包含多个函数,也可以包含自己定义的函数。
#include<stdio.h>
void butler(void);
int main(void)
{
printf(“。。。。。。 ”);
butler(); //自己定义的函数 butler()
return 0;
}
void butler(void)
{
printf(“You rang, sir?\n”);
}
2.7 调试程序(debug)
有两种常见的错误
语法错误 和 逻辑错误
语法错误就是没有遵循C语言的规则 例如,int 1var;
这里就有2个语法错误:
一是数字做变量名的开头,
二是符号用了中文符号 。注意C语言的符号都是英文符号,所以最好在编写代码时关闭中文输入法。
//如果在IDE中,有语法错误的地方会有波浪线
逻辑错误比较难找,编译时能通过,但是程序得不到正确的结果,需要分析程序流程才能找到。
定位错误的常用办法:
1.在关键点插入 printf(),打印当前值
2.调试器(debugger),
2.8 关键字和保留标识符
关键字是C语言的词汇,不能用作变量名 例如int3
具体有哪些关键字不需要特别记忆。
关键字:链接内容
保留标识符
如果使用关键字不当,如用关键字作为变量名,编译器会将其视为语法错误。还有一些保留标识符。C语言已经指定了它们的用途或保留它们的使用权,如果你使用这些标识符来表示其它意思会导致一些问题。因此,尽管他们也是有效的名称,不会引起语法错误,也不能随意使用。保留标识符包括那些以下划线字符开头的标识符和标准库函数名,如printf()。