第六章 函数
第六章 函数
回顶2-1 口指针是一个变量,它存储另一个对象的内存地址 口指针的声明由基本类型、星号()和变量名组成 口为指针赋值,赋值运算符右侧必须是一个地址如 果是普通变量需要在前面加一个取地址运算符&; 如果是另一个指针变量或者是一个数组,不需要 加&运算符 口运算符*用于返回指针指向的内存地址中存储的 值
2 回顾 2-1 ❑指针是一个变量,它存储另一个对象的内存地址 ❑指针的声明由基本类型、星号 (*) 和变量名组成 ❑为指针赋值,赋值运算符右侧必须是一个地址如 果是普通变量需要在前面加一个取地址运算符 &; 如果是另一个指针变量或者是一个数组,不需要 加 &运算符 ❑运算符 * 用于返回指针指向的内存地址中存储的 值
回顶2-2 口指针算术运算的含义是指针的移动,将指针执行 加上或者减去一个整数值η的运算相当于指针向前 或向后移动n个数据单元 口指针可以执行比较相等的运算,用来判断两个指 针是否指向同一个变量 口指向数组的指针,存储的是数组中元素的地址。 数组data的第(i+1)个元素的地址可表示为 &data[或(data+
3 回顾 2-2 ❑指针算术运算的含义是指针的移动,将指针执行 加上或者减去一个整数值n的运算相当于指针向前 或向后移动n个数据单元 ❑指针可以执行比较相等的运算,用来判断两个指 针是否指向同一个变量 ❑指向数组的指针,存储的是数组中元素的地址。 数组data的第 (i + 1) 个元素的地址可表示为 &data[i] 或 (data+i)
目标 口描述C语言中的函数 口掌握C语言中常见的內置函数 口理解函数原型和函数的返回值 口熟练掌握自定义函数的定义和调用
4 目标 ❑描述 C 语言中的函数 ❑掌握 C 语言中常见的内置函数 ❑理解函数原型和函数的返回值 ❑熟练掌握自定义函数的定义和调用
为什么使用函数 void maino void maino int cube(int a, b, c) ans=cube (x, z) Int ans, ans2=cube( a, b,c); ans=(arara)+(b*b*b)+(CcC) rety ans 函数 albeiT 主程序 函数可以把相对独立的某个功能抽象出来,使之成为 程序中的一个独立实体。可以在同一个程序或其他程 序中多次重复使用
5 void main() { :::::: x=x*x*x; y=y*y*y; z=z*z*z; ans1=x+y+z; a=a*a*a; b=b*b*b; c=c*c*c; ans2=a+b+c; ::::: } 为什么使用函数 重复多次的同一 计算类型 void main() { :::::: ans1=cube(x,y,z); ans2=cube(a,b,c); ::::: } int cube(int a,b,c) { int ans; ans=(a*a*a)+(b*b*b)+(c*c*c); return ans; } 函数 主程序 ans 函数可以把相对独立的某个功能抽象出来,使之成为 程序中的一个独立实体。可以在同一个程序或其他程 序中多次重复使用
函数机制的优点 口使程序变得更简短而清晰 口有利于程序维护 口可以提高程序开发的效率 口提高了代码的重用性
6 函数机制的优点 ❑使程序变得更简短而清晰 ❑有利于程序维护 ❑可以提高程序开发的效率 ❑提高了代码的重用性
函数类型 内置函数: 由C语言系统提供; 用户无须定义,也不 必在程序中作类型说明; 只需在程序前包含有 该函数定义的头文件; 自定义函数: 用户在程序中根据需 要而编写的函数;
7 函数类型 内置函数: ➢由C语言系统提供; ➢用户无须定义,也不 必在程序中作类型说明; ➢只需在程序前包含有 该函数定义的头文件; 自定义函数: ➢用户在程序中根据需 要而编写的函数;
6.1函数的定义与调用 611函数定义的一般形式 从形式上看,函数分为有参函数和无参函教两种形式 1.有参函数定义的一般形式 类型名函数名(形式参数列表 局部变量说明; 语句序列部分 一个函数由两大部分组成:函数的说明部分和函数体部分 其中类型名、函数名和函数参数列表为函数的说明部分 称为函数头部。花括号“{}中的部分称为函数体,包括局部 变量说明和语句序列部分
8 6.1 函数的定义与调用 6.1.1 函数定义的一般形式 从形式上看,函数分为有参函数和无参函数两种形式。 1.有参函数定义的一般形式 类型名 函数名(形式参数列表) { 局部变量说明; 语句序列部分; } 一个函数由两大部分组成:函数的说明部分和函数体部分。 其中类型名、函数名和函数参数列表为函数的说明部分, 称为函数头部。花括号“{ }”中的部分称为函数体,包括局部 变量说明和语句序列部分
类型名指明了本函数的类型。函数的类型实际上是函数 返回值的类型,说明函数将给调用者提供什么类型的返回 函数名是电用户定义的标识符。对自定义函数,其命名 遵循℃语言标识符的命名规则。 形式参数表在函数名后的括号“()”内,由一个或多 个类型标识符及变量标识符组成。在形参表中给出的参数 参数可以是客种类型的变量,必级在形参表中给出形参的 类型说明。在进行函数调用时,主调函数将赋予这些形式 参数实际的值。 在函数体中局部变量说明部分,是对函数体内部所用到 的奕量的类型说明。语包序列部分是实现函数功能的核心 部分,它宙C语言的基本语句组成
9 类型名指明了本函数的类型。函数的类型实际上是函数 返回值的类型,说明函数将给调用者提供什么类型的返回 值。 函数名是由用户定义的标识符。对自定义函数,其命名 遵循C语言标识符的命名规则。 形式参数表在函数名后的括号“()”内,由一个或多 个类型标识符及变量标识符组成。在形参表中给出的参数 称为形式参数,简称形参,各参数之间用逗号间隔。形式 参数可以是各种类型的变量,必须在形参表中给出形参的 类型说明。在进行函数调用时,主调函数将赋予这些形式 参数实际的值。 在函数体中局部变量说明部分,是对函数体内部所用到 的变量的类型说明。语句序列部分是实现函数功能的核心 部分,它由C语言的基本语句组成
2.无参函数定义的一般形式 类型名函数名0 局部变量说明; 语句序列部分; 无参函数从定义形式上看与有参函数的主要区别是函数 名后的括 没有形式参数,但函数名后的括号不 可缺少 由于无参函数没有参数,因此在调用无参函数时,主调 用函数将不给被调用函数传递数据。并且大多数情况 其 类型名司写为vod,表示该函数不返回任何类型的值。 10
10 2.无参函数定义的一般形式 类型名 函数名() { 局部变量说明; 语句序列部分; } 无参函数从定义形式上看与有参函数的主要区别是函数 名后的括号“()”没有形式参数,但函数名后的括号不 可缺少。 由于无参函数没有参数,因此在调用无参函数时,主调 用函数将不给被调用函数传递数据。并且大多数情况下, 都不要求无参函数有返回值,对没有返回值的函数,其 “类型名”可写为void,表示该函数不返回任何类型的值