第2章C语言简介

上传人:仙*** 文档编号:34083139 上传时间:2021-10-20 格式:PPT 页数:31 大小:1.58MB
收藏 版权申诉 举报 下载
第2章C语言简介_第1页
第1页 / 共31页
第2章C语言简介_第2页
第2页 / 共31页
第2章C语言简介_第3页
第3页 / 共31页
资源描述:

《第2章C语言简介》由会员分享,可在线阅读,更多相关《第2章C语言简介(31页珍藏版)》请在装配图网上搜索。

1、11.6 C语言简介语言简介l一个简单的一个简单的C程序程序l数据类型数据类型l算数和逻辑运算算数和逻辑运算l流程结构流程结构l指针、数组的定义和访问指针、数组的定义和访问l函数的定义、声明、调用函数的定义、声明、调用l结构体与共用体结构体与共用体21.6 C语言简介:一个简单的语言简介:一个简单的C语言程序语言程序main()printf(“Hello wold.n”);l 每个每个C程序都有一个主函数程序都有一个主函数main;l C程序是由函数构成的;程序是由函数构成的;l “和和”内的部分是函数体;内的部分是函数体;l 每个语句以分号每个语句以分号“;”结束;结束;l printf是是

2、C的库函数一个函数。的库函数一个函数。31.6 C语言简介:数据类型与变量定义语言简介:数据类型与变量定义l 常量常量直接常量直接常量 circle_a=3.1416*r*r;符号常量符号常量 #define PI 3.1416 /*定义符号常数定义符号常数*/ circle_a=PI*r*rl 基本变量类型基本变量类型int i1,i2; /*定义定义i1,i2为整型变量为整型变量*/short s1,s2; /*定义定义s1,s2为短整型变量为短整型变量*/long l1,l2/*定义定义l1,l2为长整型变量为长整型变量*/unsigned 放在放在int, short, long之前说

3、明为无符号类型之前说明为无符号类型41.6 C语言简介:数据类型与变量定义语言简介:数据类型与变量定义 char 字符型字符型 floatdouble 单精度实型单精度实型双精度实型(浮点型)双精度实型(浮点型) enum 枚举类型枚举类型(在构造类型里介绍)(在构造类型里介绍)l 构造类型构造类型 结构体结构体 共用体共用体l 指针指针l 空类型空类型在在C语言中,使用一个变量之前必须先定义变量的类型,语言中,使用一个变量之前必须先定义变量的类型,编译时会根据指定类型分配存储空间,并决定数据的存储编译时会根据指定类型分配存储空间,并决定数据的存储方式和允许操作的方式。方式和允许操作的方式。5

4、1.6 C语言简介:变量的赋值语言简介:变量的赋值变量变量 = 表达式表达式说明:说明:l “=”是赋值符号;是赋值符号;l 赋值运算的方向赋值运算的方向由右向左由右向左。先计算表达式的值再。先计算表达式的值再给变量赋值;给变量赋值;l “变量变量 = 表达式表达式”在在C语言中称为赋值表达式,语言中称为赋值表达式,它等于被赋值变量的值它等于被赋值变量的值b=a=3+5; /*赋值后赋值后a,b都是都是8*/课外学习:如果赋值符号课外学习:如果赋值符号“=”两边的类型不一致会两边的类型不一致会是什么结果?是什么结果?61.6 C语言简介:语言简介:标识符命名标识符命名l标识符是给程序中的实体标

5、识符是给程序中的实体变量、常量、变量、常量、函数、数组、结构体以及文件起名字。函数、数组、结构体以及文件起名字。l命名原则命名原则以字母或下划线开头,由字母、数字或下划线组以字母或下划线开头,由字母、数字或下划线组成的字符序列。成的字符序列。lNumber-of-move, piece flag, 5_7_9 都是不合法的都是不合法的C语言定义的关键字有专门含义,不能在用来命语言定义的关键字有专门含义,不能在用来命名实体名实体长度因系统而异长度因系统而异71.6 C语言简介:语言简介:算术运算算术运算l 5个双元运算个双元运算+, -, *, /, %l 自反算术运算自反算术运算a = a+b

6、; 可以简写成可以简写成 a += b;另外还有另外还有 a -= b; a *= b; a/=b; a %= b;l 自加和自减运算自加和自减运算i = i+1;可以用;可以用 i += 1; 用用i+表示表示i = i-1; 可以用可以用 i -= 1; 用用i- -表示表示课后阅读:课后阅读:+i,和,和- -i和上面有什么区别和上面有什么区别一元运算、优先级问题一元运算、优先级问题81.6 C语言简介:语言简介:关系运算和逻辑运算关系运算和逻辑运算l 关系运算是指对两个运算量之间的大小比较关系运算是指对两个运算量之间的大小比较 (大于),(大于), = (大于等于),(大于等于), (

7、小于),(小于), = (小(小于等于),于等于),!= (不等于)(不等于)l 关系运算的返回值只有两个:关系运算的返回值只有两个:“真真”或或“假假”l 3种逻辑运算种逻辑运算&(逻辑与)(逻辑与)| (逻辑或)(逻辑或)!(逻辑非)!(逻辑非)91.6 C语言简介:语言简介:C语言的语句语言的语句l 表达式语句表达式语句赋值语句;赋值语句; 如:如:i=1;i=a+b;x=sin(y)函数调用语句函数调用语句Printf(“hello worldn”);空语句空语句l 流程控制语句流程控制语句ifelse语句语句switch语句语句for语句语句while语句语句dowhile语句语句C

8、ontinue,break语句语句101.6 C语言简介:语言简介:C语言的语句语言的语句l选择结构选择结构(1)if(条件表达式)(条件表达式) 语句块语句块 /*如果只有一个语句如果只有一个语句 花括号可以去掉;花括号可以去掉;*/ 111.6 C语言简介:语言简介:C语言的语句语言的语句l 选择结构选择结构(2)if(条件表达式)(条件表达式) 语句块语句块 /*如果只有一个语句花括号可如果只有一个语句花括号可以去掉;以去掉;*/ else 语句块语句块 /*如果只有一个语句花括号可如果只有一个语句花括号可以去掉;以去掉;*/ 121.6 C语言简介:语言简介:C语言的语句语言的语句l

9、选择结构选择结构(3)if(条件表达式)(条件表达式) 语句块语句块 /*如果只有一个语句花括号可如果只有一个语句花括号可以去掉;以去掉;*/ else if(条件表达式)(条件表达式) 语句块语句块 /*如果只有一个语句花括号可如果只有一个语句花括号可以去掉;以去掉;*/ else 语句块语句块 /*如果只有一个语句花括号可如果只有一个语句花括号可以去掉;以去掉;*/ 131.6 C语言简介:语言简介:C语言的语句语言的语句l 选择结构选择结构(4)swith (表达式表达式) case 常值表达式常值表达式1:语句块:语句块1case常值表达式常值表达式 2:语句块:语句块2 . . de

10、faut :语句块语句块n 注意:每个语句块的最后一条语句通常是注意:每个语句块的最后一条语句通常是break语句(跳到语句(跳到多路选择或循环结构之后)多路选择或循环结构之后)141.6 C语言简介:语言简介:C语言的语句语言的语句l循环结构循环结构(1)while(条件表达式)(条件表达式) 循环体循环体 /*如果只有一个语句如果只有一个语句 花括号可以去掉;花括号可以去掉;*/ 151.6 C语言简介:语言简介:C语言的语句语言的语句l循环结构循环结构(2) do 循环体循环体 /*如果只有一个语句如果只有一个语句 花括号可以去掉;花括号可以去掉;*/ while(条件表达式)(条件表达

11、式)至少要执行一次循环体至少要执行一次循环体,与,与fortran语言的语言的do while语句不一样语句不一样161.6 C语言简介:语言简介:C语言的语句语言的语句l 循环结构循环结构(3)for(初始化表达式;条件表达式;修正表达式)(初始化表达式;条件表达式;修正表达式) 循环体循环体 /*如果只有一个语句如果只有一个语句 花括号可以去掉;花括号可以去掉;*/ 相当于:相当于: 初始化表达式;初始化表达式;while(条件表达式)(条件表达式) 循环体循环体 修正表达式;修正表达式;/for 中每个分句多个表达式是否可以?中每个分句多个表达式是否可以?171.6 C语言简介:语言简介

12、:指针(指针(1)l凡是在程序中定义的变量,在编译时都分凡是在程序中定义的变量,在编译时都分配相应的存储单元。配相应的存储单元。例如,一般微机的例如,一般微机的C系统给整型变量分配系统给整型变量分配2个字个字节,实型分配节,实型分配4个字节。每个变量所占的存储单个字节。每个变量所占的存储单元都有确定的地址。例如元都有确定的地址。例如int a=3,b=4;float c=4.5,b=8.6;char e=x, f=y;其在内存情况如下图所示其在内存情况如下图所示181.6 C语言简介:语言简介:指针(指针(2)l 编译时每个变量编译时每个变量名对应一个地址,名对应一个地址,在内存中不再出在内存

13、中不再出现变量名而只有现变量名而只有地址。地址。l 通过变量名或地通过变量名或地址访问一个变量址访问一个变量的方式称为的方式称为“直直接接”访问访问191.6 C语言简介:指针(语言简介:指针(2)l 变量的变量的“间接访间接访问问”方式,就是方式,就是把一个变量的地把一个变量的地址放在另一个变址放在另一个变量中量中。l 所谓指针就是地所谓指针就是地址址201.6 C语言简介:语言简介:指针变量的定义与访问指针变量的定义与访问类型说明符类型说明符 *变量名;变量名;l 例如例如int *p; l p是一个指针变量,它指是一个指针变量,它指向一个整型变量。换句话向一个整型变量。换句话说说p中存放

14、一个整型变量中存放一个整型变量的地址。的地址。float *p1; double *p2;char *p3;l 指针也可以指向自定义的指针也可以指向自定义的数据类型数据类型int i, *i_pointer i_pointer = &i;i=3;*i_pointer=3;l 第第4个语句的含义是将个语句的含义是将3赋赋给指针变量给指针变量i_pointer所指所指向的变量。向的变量。l 所以第所以第3句和第句和第4句的作用句的作用一样一样 211.6 C语言简介:数组语言简介:数组l 一维数组一维数组定义定义类型标识类型标识 数组名数组名常量表达式常量表达式;例如:例如:int a5; /*定

15、义一个数组定义一个数组a,它包含,它包含5个元素,每个元个元素,每个元素都是整型的素都是整型的*/数组元素的访问数组元素的访问数组名数组名下标下标;数组元素的下标是从数组元素的下标是从0开始的开始的对数组对数组a,其包含的,其包含的5个元素是个元素是a0,a1,a2,a3,a4221.6 C语言简介:数组语言简介:数组l二维及多维数组二维及多维数组定义定义类型标识类型标识 数组名数组名常量表达式常量表达式常量表达式常量表达式;例如:例如:int a22; /*定义一个数组定义一个数组a,它是一个两行两,它是一个两行两列的数组,每个元素都是整型的列的数组,每个元素都是整型的*/二维及多维数组的定

16、义二维及多维数组的定义数组名数组名下标下标下标下标;同样,每一维也是从同样,每一维也是从0开始开始231.6 C语言简介:数组计算机内存储示例241.6 C语言简介:指针与数组语言简介:指针与数组l一个数组的名是代表它的起始地址一个数组的名是代表它的起始地址1.如果指针变量如果指针变量p已指向数组中的一个元已指向数组中的一个元素,素,则则p+1指向同一数组中的下一个指向同一数组中的下一个元素元素。2.引入指针变量后,就可以用两种方法引入指针变量后,就可以用两种方法来访问数组元素了。来访问数组元素了。3.如果如果p的初值为的初值为&a0,则:则:p+i和和a+i就就是是ai的地址,或者说它们指向

17、的地址,或者说它们指向a数组数组的第的第i个元素。个元素。4.*(p+i)或或*(a+i)就是就是p+i或或a+i所指向的所指向的数组元素,即数组元素,即ai。例如,。例如,*(p+5)或或*(a+5)就是就是a5。5.指向数组的指针变量也可以带下标,指向数组的指针变量也可以带下标,如如pi与与*(p+i)等价。等价。 因此可以动态申请数组因此可以动态申请数组例如例如 int *a; a = (int *)malloc(sizeof(int)*n); n是数组长度,可以在程序运行时确定是数组长度,可以在程序运行时确定n的值,而不像数组定义那样需要的值,而不像数组定义那样需要常值表达式常值表达式

18、。251.6 C语言简介:指针与数组语言简介:指针与数组l 用指针动态建立二维数组用指针动态建立二维数组l 例如,例如,m x n的矩阵的矩阵 int m, n, *a, i, j;a = (int*)malloc(sizeof(int*)*m);for(j=0; j name;s2-age;l 共用体的概念(共用体的概念(自学自学)271.6 C语言简介:语言简介:函数函数l 函数式的程序结构。程序整体由一个或多个函数组成。每函数式的程序结构。程序整体由一个或多个函数组成。每个函数都具有各自独立的功能和明显的界面。个函数都具有各自独立的功能和明显的界面。281.6 C语言简介:函数语言简介:

19、函数l函数的定义包括函数的定义包括 函数类型(即函数值类型)函数类型(即函数值类型) 函数名函数名 形式参数的数目、类型形式参数的数目、类型 函数体内容函数体内容l函数定义形式如下函数定义形式如下 类型标识符类型标识符 函数名函数名(形式参数表列形式参数表列) 声明部分声明部分 语句语句 l例如例如double add(double a, double b)return (a+b); 291.6 C语言简介:函数语言简介:函数l在函数调用之前往往进行声明在函数调用之前往往进行声明例如例如int max(int a,int b) /*函数声明函数声明*/main() int max(int a,

20、int b); int x,y,z; printf(input two numbers:n); scanf(%d%d,&x,&y); z=max(x,y); printf(maxmum=%d,z); int max(int a,int b) if(ab)return a; else return b;301.6 C语言简介:函数调用语言简介:函数调用l函数的传值调用函数的传值调用 形参与实参各占一个独立的存储空间形参与实参各占一个独立的存储空间 形参的存储空间在函数调用时才分配,然后将实参的值传递给形参,这时形参得到了实参的形参的存储空间在函数调用时才分配,然后将实参的值传递给形参,这时形参得

21、到了实参的值。这种虚实结合方式称为值。这种虚实结合方式称为“值结合值结合”。l例如例如swap(int x, int y)main() int a =3, b=5; swap(a,b); cout(a,b);swap(int x, int y)int temp;temp =x; x=y; y=temp;cout(x,y)执行结果:执行结果:x=5, y=3a=3,b=5l例如例如swap(int *x, int *y)main() int a =3, b=5; swap(&a, &b); cout(a,b);swap(int *x, int *y)int temp;temp =*x; *x=*y; *y=temp;cout(*x, *y)执行结果:执行结果:x=5, y=3a=5,b=3311.6 C语言简介:语言简介:函数函数l递归调用递归调用l【例例8.5】用递归法计算用递归法计算n!用递归法计算用递归法计算n!可用下述公式表示:可用下述公式表示: n!=1 (n=0,1) n(n-1)! (n1)按公式可编程如下:按公式可编程如下:long ff(int n) long f; if(n0) printf(n0,input error); else if(n=0|n=1) f=1; else f=ff(n-1)*n; return(f);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!