文档详情

c完全手册.ppt

发布:2018-01-22约4.72千字共32页下载文档
文本预览下载声明
C程序设计语言 一、简单C程序的组成 1.任何C源程序由一个主函数和若干个自定义函数组成。 2.自定义函数的使用步骤: 说明--》调用--》定义 函数调用的执行过程 在运行被调用函数之前,系统完成: 1。将所有的实在参数、返回地址等信息传递给被调用函数保存。 2。为被调用函数的局部变量分配存储区。 3。将控制转移到被调用函数的入口。 函数返回的执行过程: 从被调用函数返回调用函数之前,系统完成: 1。保存被调用函数的计算结果。 2。释放被调用函数的数据区。 3。依照被调用函数保存的返回地址将控制转移到调用函数。 参数传递: C语言参数传递按值传递。即形式参数发生改变,实际参数也不会变。 例1: main() {int a,b; void swap(int x,int y);//函数说明 printf(input a,b:\n); scanf(%d%d,a,b); if (ab) swap(a,b);//函数调用 printf(a=%d,b=%d\n,a,b); } void swap(int x,int y)//函数定义 {int t; t=x;x=y;y=t; printf(x=%d,y=%d\n,x,y); } 例1的执行过程: Main swap 函数返回结果的方法: 1.通过函数值返回.(只有一个结果) 2.通过函数的参数返回.(多个结果) (1)类C中通过引用参数返回. 上例:swap(int x,int y) (2)标准C中通过指针返回. main() {int a,b; void swap(int *x,int *y);//函数说明 printf(input a,b:\n); scanf(%d%d,a,b); if (ab) swap(a,b);//函数调用 printf(a=%d,b=%d\n,a,b); } void swap(int *x,int *y)//函数定义 {int t; t=*x;*x=*y;*y=t; printf(“*x=%d,*y=%d\n,*x,*y); } 例2的执行过程 二、C语言的数据类型 1.基本类型 (1)字符型 char (2)整型 int (3)浮点型 float (4)双精度型double (5)无值类型void 2.导出类型: 指针、数组、结构、联合、枚举、自定义类型 数组: 1、特点:元素类型相同的一组数据。 2、定义格式:类型说明符 数组名[常量表达式] 3、存储结构:顺序存储 (数组名代表首地址) 例:int a[4]; Loc(ai)=loc(a0)+i*一个元素所占空间 4、引用:数组名[下标] (随机访问) 下标:0~n-1的表达式 n为数组长度 5、字符串:多个字符 字符串常量:“hello!” 长度为7 字符串变量: char s[7]或 char *s; 指针 1、实质:内容作为地址使用,实现动态分配 2、定义:类型标识符 *变量名 例:int *p; 指针有关运算: 1、:取操作对象(内存单元)的地址 2、*:取指针对象的内容(动态存储单元的引用 指针的使用和运算: 1、赋值运算: 对象类型相同的指针变量之间可以相互赋值,表示指向同一对象。 2、算术运算: 例:p++; 功能:p指向下一对象单元,p的值不是增加1,而是增加对象类型占的字节数。 指针使用与运算举例: 与指针有关的库函数: 函数名 函数和形参类型 功能 malloc void (或char) *malloc(size) 分配size字节 unsigned size 的存储区 Free void free(p) 释放p所指的 void(或char) *p 存储区 指向数组元素的指针变量: 当数组元素的类型和指针对象类型相同时,可以通过给指针赋值为数组名,使指针指向数组元素,这样,对数组元素的访问可以通过下标或指针法来访问。 Int a[10],*p; P=a[0]; //或p=a;这样p为指向数组元素的指针 则:p+i等价于a+i等价于a[i] *(p+i) 等价于 *(a+i) 等价于 *a[i]/a[i] 指针法 数组名法 下标法 Main() {in
显示全部
相似文档