C语言答疑.doc_第1页
C语言答疑.doc_第2页
C语言答疑.doc_第3页
C语言答疑.doc_第4页
C语言答疑.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言答疑提纲分别从下面几个方面重点答疑:1. C语言基本语法知识2. C语言的数据类型3. C函数、调用及其相关参数一、C语言基本语法知识此部分主要围绕C语言语法知识进行介绍。(1) C程序的构成1、C语言程序基本构成 函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 程序语句 C程序由语句组成 用“;”作为语句终止符 注释 /* */为注释,不能嵌套 不产生编译代码 编译预处理命令程序编写规范要求: 习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式2、C语句特点C语句:以“;”作分隔符,编译后产生机器指令.C语句分类表达式语句:表达式加分号构成。空语句: ;程序控制语句(9种): 分支:if( )else ;switch循环:for( );while( );dowhile( )辅助控制:continue;break;goto;return 复合语句:用 括起来的一组语句一般形式: 数据说明部分; 执行语句部分; 说明:“”后不加分号语法上和单一语句相同复合语句可嵌套 注意事项: 单分支、多分支语句的嵌套问题 辅助控制语句的作用,尤其是switch分支中break语句作用。 3、常见运算符:二、C语言的数据类型 C语言提供了强大丰富的数据类型,供程序人员使用,其具体分类见下图所示。 数据类型作用,主要为决定:1. 数据占内存字节数int类型数据占4个内存字节;char类型数据占一个内存字节;float类型数据占4个内存字节。2. 数据取值范围不同数据类型取值范围不同,在程序设计开发过程中需要防止出现操作溢出等错误。3. 其上可进行的操作1、简单数据类型及其取值范围2、构造数据类型1)数组:有序数据的集合,用数组名标识。其元素属同一数据类型,用数组名和下标确定。C语言中支持多维数组定义。其定义:数据类型 数组名维度1维度2.维度n其中: 数据类型见上图所示; 数组名符合C语言命名规则的合法标识符; 维度1.n:支持多维数组; 数组元素个数为:各维度数值相乘个元素。 其所占据内存空间为:sizeof(数据类型)*数组元素个数 数组名表示内存首地址,是地址常量维度:表示元素个数,下标从0开始引用:只能逐个引用数组元素,不能一次引用整个数组引用方式: 数组名下标 其中:下标可以是常量或整型表达式例如: int a56:a数组中存放5*6个int类型数据;其占据的内存空间是:sizeof(int)*(5*6)=120字节;a23表示a数组中第三行第四个元素; char chs358:chs数组中存放3*5*8个char类型数据;其占据的内存空间是:sizeof(char)*(3*5*8)=120字节需要特别注意:Char数组:字符数组的初始化:逐个字符赋值;用字符串常量。字符串:无字符串变量,用字符数组处理字符串字符串结束标志:0char数组采用字符串进行赋值之类操作需要注意结束标志所占据的数据位。2)结构体struct属于:自定义数据类型。其把不同类型的数据组合成一个整体。 例3: struct int num; char name20; float score; char addr30; stu1,stu2; 例如:struct 结构体名 类型标识符 成员名; 类型标识符 成员名; .;注意事项:struct是关键字,不能省略;结构体名:合法标识符,可省:无名结构体;成员类型可以是基本型或构造型。结构体类型定义描述结构的组织形式,不分配内存。仅在声明结构体变量时才分配内存。用无名结构体直接定义变量只能一次结构体类型与结构体变量概念不同类型:不分配内存; 变量:分配内存类型:不能赋值、存取、运算; 变量:可以结构体可嵌套结构体成员名与程序中变量名可相同,不会混淆结构体类型及变量的作用域与生存期 例如:例3为无名结构体,其对score成员的引用为:stu1.score;或者stu2.score; 3) 共用体union使几个不同类型的变量共占一段内存(相互覆盖)类型定义不分配内存;共用体变量任何时刻只有一个成员存在;共用体变量定义分配内存,长度=最长成员所占字节数;引用规则:不能引用共用体变量,只能引用其成员共用体变量中起作用的成员是最后一次存放的成员;不能在定义共用体变量时初始化可以用一个共用体变量为另一个变量赋值共用体类型定义:union 共用体名 类型标识符 成员名; 类型标识符 成员名; .;union data int i; char ch; float f; a,b其引用常见方式为:a.i a.ch a.f或者(*p).i (*p).ch (*p).f或者p-i p-ch p-f4)枚举类型功能:用自定义名字为已有数据类型命名 类型定义简单形式: typedef type name;说明:1.typedef 没有创造新数据类型2.typedef 是定义类型,不能定义变量3.typedef 与 define 不同define typedef预编译时处理 编译时处理简单字符置换 为已有类型命名 5)指针类型: 讲到指针,必然和变量联系在一起,变量是对程序中数据存储空间的抽象 指针:一个变量的地址指针变量:专门存放变量地址的变量两个运算符:&运算符:含义: 取变量的地址单目运算符优先级: 2结合性:自右向左 *运算符:含义: 取指针所指向变量的内容单目运算符优先级: 2结合性:自右向左 两者关系:互为逆运算理解指针定义:基类型 *指针变量名举例说明:int i=10;int *i_pointer;i_poinnter=&i; i_pointer-指针变量,它的内容是地址量*i_pointer-指针的目标变量,它的内容是数据&i_pointer-指针变量占用内存的地址数组的指针和指向数组指针的指针变量数组指针的含义参考下表:三、C函数、调用及其相关参数函数分类:w 从用户角度w 标准函数(库函数):由系统提供w 用户自定义函数w 从函数形式w 无参函数w 有参函数使用库函数应注意:1、函数功能2、函数参数的数目和顺序,及各参数意义和类型3、函数返回值意义和类型4、需要使用的包含文件用户自定义函数:函数类型 函数名(形参类型说明表)说明部分语句部分其中:函数返回值类型 缺省int型 无返回值void 函数名:合法标识符调用:n 调用形式:函数名(实参表);说明:实参与形参个数相等,类型顺序一致,按顺序一一对应实参表求值,因系统而定(Turbo C 自右向左)函数返回:n 返回语句u 形式: return(表达式);n 或 return 表达式;n 或 return;u 功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数u 说明:l 函数中可有多个return语句l 若无return语句,遇时,自动返回调用函数l 若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换-函数调用转换l void型函数函数参数及其传递方式:函数参数分为两类:形参与实参n 形式参数:定义函数时函数名后面括号中的变量名n 实际参数:调用函数时函数名后面括号中的表达式 传递方式:w 值传递方式w 方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值w 特点:w 形参与实参占用不同的内存单元w 单向传递w 举例:#include main() int x=7,y=11; printf(x=%d,ty=%dn,x,y); printf(swapped:n); swap(x,y); printf(x=%d,ty=%dn,x,y);swap(int a,int b) int temp; temp=a; a=b; b=temp;其输出结果:7,11 w 地址传递方式w 方式:函数调用时,将数据的存储地址作为参数传递给形参特点:n 形参与实参占用同样的存储单元n “双向”传递n 实参和形参必须是地址常量或变量w 举例:swap(p1,p2)int *p1,*p2; int p; p=*p1;

温馨提示

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

评论

0/150

提交评论