c语⾔中switch语句流程图_C语⾔⼊门这⼀篇就够了-学习笔记按照之前的计划,这篇⽂章本该写C语⾔简介,包括⼀些历史背景,发展状况, 语⾔特点什么的,这些东西着实⽐较啰嗦。
吃饭⽤的筷⼦,到现在我都不知道它的由来,不知道它是在什么历史背景下诞⽣的
有些东西还是有必要了解⼀下,⽐如,C语⾔所产⽣的代码运⾏速度⽐汇编语⾔编写的代码运⾏速度稍慢⼀点,但还是有得⼀拼,同时C语⾔要⽐汇编语⾔编写的代码可读性⾼,可移植性好。另外,相对于其他⾼级语⾔,⽐如C++、java、C#等来说,C语⾔编写的代码运⾏效率要⾼。
在介绍C语⾔的数据类型和基本语法之前,先说说C程序结构和C⽂件结构。
1、C程序结构:
①预处理指令;
②变量、函数、语句、表达式、注释等;
③返回值;
以⼀段简单的打印输出“hello world”代码为例:
注意:⼀个完整的C语⾔程序,是由⼀个、且只能有⼀个main()函数(⼜称主函数)和若⼲个其他函数结合⽽成,或仅由⼀个main()函数构成;
接下来看看C语⾔程序运⾏结构:基本的三种程序结构为顺序结构、选择结构和循环结构。
顺序结构:程序按顺序执⾏,不发⽣跳转。
选择结构:依据是否满⾜条件,执⾏相应功能。(1)if(表达式) 语句;(2)if(表达式)语句1;else语句2;(3)if(表达式1)语句1;else if(表达式2)语句2;...else语句n;
注意:第三种⽅式,即: if......lse,只能响应⼀个条件。
循环结构:
while ( ) { } 语句 先判断表达式后执⾏.
do{ }-while( ) 语句 先执⾏语句后判断表达式.
for( ; ; ){ }
2、C⽂件结构:
⼀个基于C的软件系统⼀般由以下⽂件构成:
若⼲个C⽂件:每个C⽂件中包含若⼲个函数。
若⼲个头⽂件:每个头⽂件中包含⼀些数据结构的定义以及C函数、变量的原型声明。
若⼲个库⽂件:库⽂件是编译后的⼆进制⽂件,⼀般由若⼲C⽂件编译后组成,其中包含了若⼲个函数的可执⾏代码;这些库⽂件中的函数可执⾏代码在连接的时候合并到最终的可执⾏⽂件中。
若⼲个make⽂件:make⽂件描述了多个⽂件中的依赖关系以及⽣成最终可执⾏⽂件或库⽂件所需要的信息。
由于篇幅较⼩,再加点内容,顺便写写C语⾔的关键字和控制语句。
1、关键字:
这⾥介绍下C语⾔的32个关键字(⾄于ISO推出的C99标准新增的5个C语⾔关键字和C11标准新增了7个
C语⾔关键字⽬前没有做过过多了解,这⾥就不再介绍)
(1)数据类型关键字(12个)
char,short,int,long,float,double,unsigned,signed,void,struct,union,enum;
char:字符型类型数据
short:短整型数据,修饰int,⼀般省略被修饰的int;// short int a = 10;⼀般写成 int a = 10;
int:整型数据,通常为编译器指定的机器字长;
long:长整型数据,修饰int,⼀般省略被修饰的int;
float:单精度浮点型数据;
double:双精度浮点型数据;
unsigned, signed是修饰符,分别表⽰⽆符号和有符号,我们时常写的“ int a=123;”其实就是“signed int a = 123;”,表⽰有符号整型
void: 声明函数⽆返回值或⽆参数,修饰指针时表⽰⽆类型指针,void不可⽤来定义变量,但可以⽤它来修饰各种变量;
struct:⽤来声明结构体;
union:⽤来声明共⽤体或者叫联合体;
enum:⽤于枚举类型的声明;
关于结构体,共⽤体,枚举的⽤法以及结构体和共⽤体的区别以后单独再写;(2)控制语句关键字(12个)
if,else,for,do,while,break,case,continue,default,return,switch,goto(尽量别使⽤);
(3)存储类关键字(4个)
auto,extern,register,static
auto:声明⾃动变量(很少使⽤);
extern:声明变量外部可⽤,可以置于变量或者函数前,以表⽰变量或者函数的定义在别的⽂件中,
可以外部使⽤;
static:声明静态变量,static修饰的变量存储在静态变量区,修饰全局变量时,表⽰该变量为全局静态变量,作⽤域为当前⽂件;修饰函数时表⽰函数作⽤域为当前⽂件内部; 修饰局部变量时,表⽰该变量为静态局部变量,只被初始化⼀次,赋值之后值会保持最新的值,也就是说局部静态变量的⽣命周期被扩展到整个程序运⾏的时间段内。这⾥不知道有没有说清楚,⼲脆看个例⼦简单明了:
register:声明寄存器变量,修饰符暗⽰编译程序相应的变量将被频繁地使⽤,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。
注:register变量必须是能被CPU所接受的类型,这通常意味着register变量必须是⼀个单个的值,并且长度应该⼩于或者等于整型的长度。不过,有些机器的寄存器也能存放浮点数。因为register变量可能不存放在内存中,所以不能⽤“&”来获取register修饰变量的地址,如:流程图转换为ns图
(4)其他关键字(4个)
const,sizeof,typedef,volatile
const:const修饰变量,表⽰被修饰的变量不可被当前线程或进程改变;例如:const int *p = 100; //const修饰int *,表⽰*p的值不可变*p = 50; //错误,*p的值不可变再⽐如:int a = 0;int b = 0;int * const p = &a;//const修饰指针p,表⽰指针变量地址不可变;p = &b; //错误,地址不可变,不能指向其他地址;
sizeof:计算数据类型长度或者变量占内存空间⼤⼩,sizeof长得像函数,其实它是个关键字;
typedef:为某种数据类型定义⼀个新的名字;
volatile:确保本条指令不会因编译器的优化⽽省略,且要求每次直接读值,简单地说就是防⽌编译器对代码进⾏优化。⽐如如下程序:num=0x65;num =0x66;num =0x67;num =0x68;对外部硬件⽽⾔,上述四条语句分别表⽰不同的操作,会产⽣四种不同的动作,但是编译器就不能像对待纯粹的程序那样对上述四条语句进⾏优化,只认为 num=0x65(即忽略前三条语句,只产⽣⼀条机器代码)。如果键⼊volatile,则编译器会逐⼀的进⾏编译并产⽣相应的机器代码(四条)
2、语句
C语⾔利⽤函数体中的可执⾏语句,向计算机系统发出操作指令;按照语句功能或构成的不同,可将C语⾔的语句分为5类:
(1)控制语句(9条,可以细分为三种):
选择结构控制语句
if()~else~, switch()~
循环结构控制语句
for()~, while()~, do~while(), break, continue
其他控制语句
return, goto
return功能:终⽌执⾏函数,赋值(可选); 将控制权返回给调⽤函数的下⼀条语句
goto:⽆条件转移语句,跳转语句;
如上代码,在不使⽤goto的情况下,会分别打印出line 1、line 2、line3,在打印完line 1后使⽤goto语句,则直接跳转到goto⽬标代码,即代码中的end部分;
(2)函数调⽤语句:
函数调⽤语句由⼀次函数调⽤加⼀个分号构成.
例如:
printf(“hello world!”);
scanf(“%d”,&num);
(3)表达式语句:
表达式语句是由表达式后加⼀个分号构成,
例如:
“num = 10”是表达式,
“num = 10;”是赋值语;
(4)空语句:
空语句由⼀个分号构成,空语句什么操作也不执⾏.。
(5)复合语句:
复合语句由⼤括号括起来的⼀组语句构成。
{
{ } //复合语句,注意⼤括号后不需要分号
}
复合语句⼀般与其它语句配合使⽤:
如for( ; ; ) { }
这玩意⼉想的时候不多,写起来却很多,深究起来就多的完全说不完(┬_┬),C语⾔基础部分本应该在本篇⽂章中写完,由于时间问题,下次再写吧。
下篇开始说说数据类型,运算符与表达式,想了解的⼩伙伴们,可以关注收藏,后续内容请见下回分解。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。