目录
目录
2.0 概述
使用C语言的7个步骤
并不是线性的,要在不同步骤之间往复
用C语言编写程序时,编写的内容被储存在文本文件中,该文件被称为源代码文件(source code file)。大部分C系统,都要求文件名以.c结尾。
目标代码又称机器语言代码
2.1 简单的C程序示例
1、stdio.h:标准输入/输出头文件
2、main()一个函数名(必须从主函数开始运)
int是main()函数的返回类型:返回的值是整数(返回给操作系统);圆括号中包含一些传入函数的信息,此例中没有传递任何信息(即void)
3、/*注释*/
/*可以被分成两行
就像这样*/
//这种只能写一行
4、花括号{函数}表示函数的开始和结束
5、声明int num
函数中有一个名为num的变量。Num是一个标识符(一个变量、函数or其他实体的名称)
int是一个关键字keyword,表示C的一种数据类型。在此表明num是一个整数
有两种使用方法:把声明全部列在前面在进行其他语句or块中任意位置(C99之后),但首次使用之前必须声明。
给变量命名的规则:
- 可以用小写字母、大写字母、数字和下划线(_)来命名。而且,名称的第1个字符必须是字符或下划线,不能是数字。
- C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符。对于外部标识符(参阅第12章),只允许使用31个字符。
- 操作系统和C库经常使用以一个或两个下划线字符开始的标识符(如,_kcab),因此最好避免在自己的程序中使用这种名称。
- (注意 C语言的名称区分大小写)
6、赋值num=1;
把值1(右侧)赋予变量num(左侧),以分号结尾。
7、printf()函数
圆括号表明是一个函数名;圆括号中的内容是main()函数传递给printf()函数的信息;f提醒用户这是一种格式化打印函数。
n\换行符(转义序列:用于代表难以表示或无法输入的字符。如,\t代表Tab键,\b代表Backspace键(退格键)。每个转义序列都以反斜杠字符(\)开始。)
%d相当于占位符,指明输出num值的位置;d表明把变量作为十进制整数打印。
8、return语句
int main(void)中的int表明main()函数应返回一个整数。有返回值的C函数要有return语句。该语句以return关键字开始,后面是待返回的值,并以分号结尾。
综上:
函数头包括函数名、传入该函数的信息类型和函数的返回类型。
通过函数名后的圆括号可识别出函数。
函数体被花括号括起来,由一系列语句、声明组成。如图。
2.2 提高程序可读性的技巧
- 选择有意义的函数名
- 写注释
- 在函数中用空行分隔多个部分(如声明与其他语句隔开)
- 每条语句占一行
- 使用分号
2.3 进一步使用C
(英尺转换为英寸)
- 程序的开始有一条注释(未写)
- 多条声明,用逗号隔开。
- 乘法(6×该值,并赋值)
- 打印多个值
第一个变量feet替换第一个%d,第二个变量fathoms替换第二个%d。待输出变量列于双引号后面,用逗号隔开。
且可不设置变量,如第二个printf直接计算输出。
2.4 多个函数
把自己的函数加入程序中
- butler()
- 第一个:告知编译器要在程序中使用该函数。函数原型(函数声明),第一个void表明没有返回值,第二个void(空的)表明此函数不带参数。
- 第二个:函数调用。
- 第三个:函数定义。
2.5 调试程序
1、语法错误:把有效的C符号放在错误的地方,违反了组成语句或程序的规则。编译器可以识别出来。
2、语义错误:含义错误。需要自查(一步一步)
监视程序状态(可用于定位语义错误):
①一步一步;
②在程序中的关键点插入额外的printf()语句,以监视制定变量值的变化。通过查看值的变化可以了解程序的执行情况。对程序的执行满意后,便可删除额外的 printf()语句,然后重新编译。
③使用调试器。
2.6 关键字和保留标识符
不可用来表示其他意思
保留标识符:以下划线开头/标准函数名
来源:C Primer Plus第六版