当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > C语言程序基本结构详解

C语言程序基本结构详解 时间:2017-12-29      来源:未知

在C语言的补习课程中,有些学生对于C语言的结构不是很了解,为此为了让学生对于C语言有多的认识,有利于促进C语言的学习,本文对C语言的程序结构进行了简单的分析与解释。

程序结构:在C语言程序中,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构;另外会介绍一个重要的结构,函数的介绍。

一、流程控制

1.顺序结构

默认的流程结构,按照书写顺序执行每一条语句

我们开始接触的就是顺序结构:

#include <stdio.h>

int main(int argc, const char *argv[])

{

printf("Hello World!\n");

return 0;

}

如上面的例子,就是简单的顺序结构。

程序讲解:

#include<stdio.h>:标准I/O头文件,下文中的printf需要使用这个文件

int main():主函数,一个程序的入口。一个程序有且只有一个main()函数

int:代表主函数的返回值类型是int型

printf():格式化输出,将括号内的内容打印到显示器上,打印字符串需要用双引号""引上

return 0;:配合主函数类型使用,一般来说返回0的程序表示程序运行成功

打印的结果为:Hello World!

2.选择结构

对给定的条件进行判断,再根据判断结果来决定执行那一段代码

3.循环结构

*在给定条件成立的情况下,反复执行某一段代码

二、选择结构--if

1.使用方式

1> if(表达式) 语句1;

* if(i>1) 恭喜你被黑马录取;

2> if(表达式) 语句1;else 语句2;

* if(i>1) 恭喜你被黑马录取;else 希望你再接再厉;

3> if(表达式){}

if(表达式){}

else{}

4> if (){}

else if(){}

else{}

选择结构:C语言中常用的选择结构主要有以下两种:

我们引入了一个bool类型的值(也叫boolean类型,布尔类型),只有两个值,即真和假。C语言的判断表达式终的值就是一个bool类型,这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环;

if else:引入关键字:if  else  else if

if (bool值)     // 如果bool值为真,则执行代码段1,否则执行代码段2

{

代码段1

}

else

{

代码段2

}

if (bool值1)    // 如果bool值1为真,则执行代码段1,否则判断bool值2是否为真

{

代码段1

}

else if (bool值2)  // 若bool值2为真则执行代码段2,否则直接执行代码段3

{          // 开头的if和结尾的else都只能有一个,但是中间的else if可以有好多个

代码段2

}

else

{

代码段3

}

这段代码里,就有了选择结构,可以根据不同的判断,选择相应的执行代码 。

C 语言的编程中 ‘//’ 的含义是注释的意思。

三、选择结构--switch

1.使用格式

* switch(表达式) { case 数值1: break; … default: break;}

* 举例

switch case:引入关键字:switch  case  break  default

switch (变量)       // 执行到这一句时,变量的值是已知的

{           // switch case语句执行时,会用该变量的值依次与各个case后的常数去对比,试图找到第一个匹配项,找到匹配的项目后,

case 常数1:    // 就去执行该case对应的代码段,如果没找到则继续下一个case,直到default

代码段1;   // 如果前面的case都未匹配,则default匹配。

break;

case 常数2:

代码段2;

break;

……

default:

代码段n;

break;

}

*break作用:跳出整个循环;如果不写break,语句会一直向下执行,直到遇到break。

这个就是switch case语句的选择语句。

注意:

第一, case中必须是常数,而且必须是整形;

第二, 一般来说,每个case中代码段后都必须有一个break;

第三,case之后一般都会有default,虽然语法上允许没有default,但是建议写代码时一定要写。

关于两种的比较:if else和switch case的区别:if else适合对比条件较复杂,但是分支比较少的情况,switch case适合那种对比条件简单,但是分支较多的情况。通常的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合则使用if else。这一点根据自身情况,选择合适的方法使用。

2.if和switch的比较

* 很多情况下可以互换

* if使用方式较为灵活,使用的较多;switch适合有某个值

四、循环结构

1) 循环机构--for

(1) for:

for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)

{

循环体

}

#include <stdio.h>

int main(int argc, const char *argv[])

{

int i, sum = 0;

for(i = 0; i<= 100; i++)

{

sum = sum + i;

}

printf("%d\n", sum);

return 0;

}

循环执行步骤:

第一, 先进行循环控制变量初始化;

第二, 执行循环终止条件,如果判断结果为真,则进入第三步;如果为假则循环终止并退出;

第三,执行循环体;

第四,执行循环控制变量增量,转入第二步;记住他的循环步骤,编写程序的时候就会很简单。上面的事例程序就是从从1 加到100的运算。

注意:for循环()中的三部分除了循环终止条件外,其他两部分都可以省略,但标准的for循环中,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量,这个在编程中要注意。

2)循环结构--while

特点

*只有满足条件是才会执行循环体

*特别注意是否进入了死循环

(2) while:

循环控制变量初始化

while(循环终止条件)

{

循环体

循环控制变量增量

}

#include <stdio.h>

int main(int argc, const char *argv[])

{

int i = 0, sum = 0;

while(i <= 100)

{

sum = sum + i;

i++;

}

printf("%d\n", sum);

return 0;

}

循环执行步骤:第一,先进行循环控制变量初始化(在while之前);第二,判断循环终止条件,如果判断结果为真,则进入第三步;如果为假则不执行循环体;第三,执行循环体;第

特点

*只有满足条件是才会执行循环体

*特别注意是否进入了死循环

3) 循环结构--do while

1.特点

* 一定会执行一次循环体

2.使用

*对比while的使用

(3) do while:

循环控制变量初始化

do

{

循环体

循环控制变量增量

}while (循环终止条件);

#include< stdio.h>

int main(int argc, const char *argv[])

{

int i = 0, sum = 0;

do

{

sum = sum + i;

i++;

}while(i <= 100);

printf("%d\n", sum);

return 0;

}

循环执行步骤:第一,先进行循环控制变量初始化(在do while之前);第二,执行循环体;第三,执行循环控制变量增量;第四,判断循环终止条件,如果判断结果为真,则返回第二步;如果为假则直接退出循环;

上面关于循环的例子都是一样的,但需要学会比较内部的区别。不管哪种循环结构,都不能缺少循环控制条件初始化,终止条件,循环控制变量增量,循环体这四部分;while循环是先判断后执行,do while循环是先执行后判断,等循环一次之后,其实都是一样的。

补充:

1> 死循环 for(;;); 有时候我们会在子线程中使用无限循环,以达到不让县城退出的目的。

2> 注意:for循环体内变量的作用域

3> while循环和for循环的比较

* 可以互换

* for循环的变量可以及时回收

上一篇:Linux getopt函数详解

下一篇:搭建Linux C语言开发环境

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部