1 / 23
文档名称:

C语言带参数的函数.ppt

格式:ppt   大小:811KB   页数:23页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言带参数的函数.ppt

上传人:我是药神 2022/5/6 文件大小:811 KB

下载得到文件列表

C语言带参数的函数.ppt

文档介绍

文档介绍:C语言带参数的函数
变量的作用域 4-4
#include <>
int sum=0;
void addNumbers()
{
int num1,num2;
printf("\n 请输入两个数:");
scanf);
increment(num1,num2);
printf("\n 递增后的值是 %d 和 %d\n", num1, num2);
}
void increment(int val1,int val2)
{
val1++;
val2++;
printf("\n 子函数中值 %d 和 %d\n", val1, val2);
}
传值调用示例
请输入两个数 :
34 56
递增前的值是 34 和 56
_
递增后的值是 34 和 56
num1
num2
var1
34
56
var2
子函数中的值是 35 和 57
35
34
56
57
num1
num2
34
56
34
56
FF23
FF05
调用后修改为35
val2
FFEA
FF45
将变量num1的
值赋给形参val1
将变量num2的
值赋给形参val2
val1
调用后修改为57
调用函数
被调用函数
16
void main()
{
int a = 0; //初始化a值为0
func(&a); //调用函数F
printf("%d",a); //输出a的结果
}
//定义函数F
void func(int *a)
{
*a = 10; //让参数a等于10
}
引用调用
FFE0
引用调用
a=FFE0
将会输出什么
17
#include <>
void increment(int*, int*);
void main()
{
int num1,num2;
printf("\n 请输入两个数: ");
scanf(" %d %d",&num1,&num2);
printf("\n 递增前的值是 %d 和 %d\n",num1,num2);
increment(&num1,&num2);
printf("\n 递增后的值是 %d 和 %d\n", num1, num2);
}
void increment(int *ptr1, int *ptr2)
{
(*ptr1)++;
(*ptr2)++;
printf("\n 子函数中值 %d 和 %d\n", *ptr1, *ptr2);
}
引用调用示例
请输入两个数 :
45 67
递增前的值是 45 和 67
_
递增后的值是 46 和 68
num1
num2
ptr1
45
67
ptr2
子函数中的值是 46 和 68
46
FF23
FF05
68
FF23
FF05
num1
num2
45
67
FF23
FF05
FF23
FF05
ptr2
FF45
FF51
调用前为45
调用后为46
将变量num1的地址
赋给形参,即指针
ptr1指向变量num1
ptr1
调用前为67
调用后为68
将变量num2的地址
赋给形参,即指针
ptr2指向变量num2
18
数组作为函数参数
在用数组作实参时,以传址方式调用函数,也就是说把实参数组的首地址赋给形参
实际上形参数组和实参数组为同一数组,共同拥有一段内存空间
19
数组作为参数示例1
问题描述:
通过函数实现5个学员成绩的排序。
#include <>
#define N 5
void sort(float a[]);
void main()
{
float grade[N];
int i;
printf("\n 输入 %d 个学员的成绩:\n",N);
for(i=0;i<N;i++)
scanf("%f",&grade[i]);
sort(grade);
printf("\n 排序后的成绩为:\n");
for(i=0;i<N;i++)
printf("% ",grade[i]);
printf("\n");
}
传递数组时不使用 “&”
void sort(float a[N])
{
int i,j; float temp;
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1; j++)
{
if(a[j] > a[j+1])
{