C语言是世界上最流行、最实用的编程语言之一,想入门的朋友跟我一起从0基础开始看C语言程序的最基本构成,开启C语言的学习之旅。
首先,我们先来看一下C 语言的一个小的程序结构,我们以它作为参考。
C Happy 实例
C 程序主要包括以下部分:
- 预处理器指令
- 函数
- 变量
- 语句 & 表达式
- 注释
让我们看一段简单的代码,可以输出 "Happy!":
eg:
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Happy! \n");
return 0;
}
接下来我们讲解一下上面这段程序:
- 程序的第一行 #include <stdio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。
- 下一行 int main() 是主函数,程序从这里开始执行。
- 下一行 /*...*/ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。
- 下一行 printf(...) 是 C 中另一个可用的函数,会在屏幕上显示消息 "Happy!"。
- 下一行 return 0; 终止 main() 函数,并返回值 0。
在C语言程序里,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构
顺序结构:按照实物本身特性,必须一个接着一个来完成。
选择结构:到某个节点后,会根据一次判断结果来决定之后走哪一个分支。
循环结构:循环结构有一个循环体,循环体是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。
总结:对于顺序结构来说,不需判断,因为下一句指令就是你要执行的。对与循环与选择结构来说,都需要进行判断。然后根据判断结果来决定怎么办。
逻辑上有一种类型,叫bool类型(又写作boolean类型,中文叫布尔类型)。布尔类型只有两个值,真和假。
C语言中有以下一些判断运算符
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
使用这些判断运算符,可以写出一个判断表达式,这个判断表达式最终的值就是一个bool类型。这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环。
1、选择结构详解:
C语言中选择结构一共有两种:
第一种:if else
引入关键字:if else else if
if (bool值) // 如果bool值为真,则执行代码段1,否则执行代码段2
{
代码段1
}
else
{
代码段2
}
if (bool值1) // 如果bool值1为真,则执行代码段1
{ // 否则则判断bool值2是否为真,若为真则执行代码段2
代码段1 // 否则直接执行代码段3
}
else if (bool值2) // 开头的if和结尾的else都只能有一个,但是中间的
{ // else if可以有好多个。
代码段2
}
第二种:switch case
涉及到的C语言关键字: switch case break default
switch (变量) 执行到这一句时,变量的值已经知道了
{ switch case语句执行时,会用该变量的值一次与各个case后的常数去对比,试图找到第一个匹配项。
case 常数1:
代码段1; 找到匹配的项目后,就去执行该case对应的代码段
break; 如果没找到则继续下一个case,直到default。
case 常数2: 如果前面的case都未匹配,则default匹配。
代码段2;
break;
}
注意:
1、case中必须是常数,而且必须是整形(不能是float double,可以是int char)
2、一般来说,每个case中代码段后都必须有一个break;如果没有,结果可能会让你大吃一惊
3、case之后一般都会有default。语法上允许没有default,但是建议写代码时一定要写。
2、C语言中的循环结构
C语言中常用的循环结构有三个:for循环、while循环、do while循环。
1、for循环
for(循环控制变量初始化; 循环终止条件; 循环控制变量增量)
{
循环体
}
- init 会首先被执行,且只会执行一次。这一步允许声明并初始化任何循环变量。
- 接下来会判断 condition。如果为true ,则会执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着for循环的下一条语句。
- 在执行完for循环的循环主体后,控制流会跳回上面的increment 语句。该语句允许更新循环控制变量。
- 条件再次被判断。如果为真,则执行循环,这个过程不断重复至条件变为false 时,for循环终止。
2、while循环
i = 1;
sum = 0; 循环初始化
while (i < 100) 终止条件
{
printf("i = %d.\n", i);
sum += i; 循环体
i += 2; 循环控制增量,属于循环体的一部分
}
while循环的执行步骤:
- 首先是循环初始化。这一部分其实不属于while循环本身。
- 先判断终止条件是否满足。如果是真,则进入第2步;否则直接退出。
- 执行循环体,然后转入第1步。
3、do while循环
i = 1;
sum = 0; 初始化条件
do
{
printf("i = %d.\n", i);
sum += i;
i += 2; 增量,循环体的一部分
}while (i < 100); 终止条件
do while循环的执行步骤:
- 首先是循环初始化。这一部分其实不属于do while循环本身。
- 执行循环体(循环控制变量的增量是循环体的一部分)
- 判断终止条件。若成立,则转入1;若不成立则退出
基础知识:
当我们定义了一个局部变量,但是没有初始化的时候,这个值是随机的