最近一直在继续阅读本书,因为一直在准备期末而没怎么看博客,现在期末结束了,可以继续写了。就目前的进度而言这本书写的很详细,细节有很多,一些地方也会在全书中多次强调。
全书共分17章,这是关于本书第2章内容的博客。本章很多内容会在后面章节中详细介绍,在本文中会略写。博客的目录和书上目录是相似的。此系列博客的代码都在Visual Studio 2022环境下编译运行。
我目前大一刚刚结束,水平有限,博客中若有错误或者总结不到位的地方也请见谅。
目录
2.1 简单的C程序示例及其解释
2.1.1 简单的C程序示例
#include<stdio.h>
int main(void)
{
int num;
num = 1;
printf("I am a simple ");
printf("computer.\n");
printf("My favorite number is %d because it is first.\n", num);
return 0;
}
该程序的功能是在屏幕上打印一些内容。编译运行后打印的内容如下:
I am a simple computer.
My favorite number is 1 because it is first.
如果程序的输出在屏幕上一闪而过,可以在程序中添加下面的语句:
getchar();
此语句让程序等待按键,窗口在用户按键后关闭。
2.1.2 #include指令和头文件
#include<stdio.h>的作用相当于把stdio.h文件的内容输入该行所在位置。
#include这行代码是一条预处理指令。通常C编译器在编译前会对源代码做一些准备工作,即预处理。
stdio.h头文件包含了输入和输出函数,文件名含义是标准输入和输出头文件。头文件包含了编译器创建最终可执行程序的需要信息,如函数的定义。头文件帮助编译器把程序正确组合在一起。
使用库函数需要包含必要的头文件。
2.1.3 main()函数
int main(void),此语句表明函数名为main,返回类型为int(整数),void表明不接受参数。
在一般情况下,C程序一定从main()函数开始执行。圆括号表明这是一个函数。函数是C程序的基本模块。圆括号内包含接受参数,没有则为void。
2.1.4 注释
被/*和*/括起来的部分是注释,注释能让人更容易明白程序。C语言的注释可以放在任意地方,也可以放一行或者多行。编译器会忽略所有注释。
以//开头的一行文字也是注释,这种只能是一行,如果要注释多行则需要在每行的开头都增加//。
2.1.5 花括号、函数体和块
花括号{}将函数的内容括起来。C语言使用花括号标记函数的开始和结束,或者将多条语句合并为一个单元。
2.1.6 声明
声明是C语言最重要的特性之一。int num;就是声明,声明变量类型为int,标识符(即名称)为num。
int表示整数,是一种数据类型。int是C语言的一个关键字,关键字被语言定义,不能用于其他用途。
声明将特定标识符和和计算机内存的特定位置联系起来,同时确定信息类型或数据类型。
C语言中所有变量必须先声明才能使用。声明可以放在代码中的任意位置,但是必须在使用前声明。
给变量命名时要使用有意义的变量名或标识符,如果变量名无法清楚地表达自身用途,可以在注释中声明。可以使用小写字母、大写字母、数字和下划线命名,但是名称的第一个字符必须是字母或者下划线。变量命名区分大小写。
2.1.7 赋值
num = 1;这个语句把1赋给num。赋值将值存储在之前为变量预留的位置。
2.1.8 printf()函数
C语言的库函数printf()查看双引号的内容,并打印在屏幕上。
2.1.9 return语句
return语句的结构是return 返回值; 。如果遗漏main函数的return语句,程序在右花括号处会自动结束,但最好不要省略。
2.2 简单程序的结构
C语言程序由一个或多个函数组成,一般必须有main()函数。
函数由函数头和函数体组成。函数头包括函数名,传入该函数的信息类型和函数的返回类型。函数体由花括号括起来,由一系列语句、声明组成。
一个简单的C程序格式如下:
#include <stdio.h>
int main(void)
{
语句
return 0;
}
2.3 提高程序可读性的技巧
编写可读性高的程序是良好的编程习惯。可读性高的程序更容易理解,也更容易修改和更正,还有助于帮助理解编程思路。
几个提高可读性的技巧:选择有意义的函数名和变量名;写注释;用空行分隔概念上的多个部分;每条语句各占一行。
C语言不强制必须用空行,也不要求语句必须占一行。
每条语句最后都有分号,分号告诉编译器这条语句在哪里结束。
2.4 多个函数
C语言中可以使用自己的函数。自定义函数通常出现三次:函数原型(也叫函数声明)、函数调用和函数定义。
2.5 调试程序
程序的错误通常叫做bug,找出bug并修正的过程叫做调试(debug)。
2.5.1 语法错误
不遵循C语言语法规则会导致语法错误。在编译时,编译器发现语法错误会指出错误,并报告信息,此时不能执行程序。
2.5.2 语义错误
语义错误指意思的错误。不违反C语言语法规则,但是结果与预期不符,就是语义错误。编译器不会检查语义错误,只能自己找。
2.5.3 程序状态
一些编译器中提供有设置,可以一步一步运行程序,并检查变量的值。
2.6 关键字和保留标识符
关键字对C语言而言比较特殊,不能用于作为标识符。使用关键词不当会导致报错。
保留标识符已经被指定用途或保留使用权,如果使用可能导致问题,不要随便使用。