栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言——函数、参数和指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言——函数、参数和指针

目录

一、函数

1.定义

2.函数的声明

3.函数的参数和返回值

 二、参数和指针

1.形参和实参

2.传值和传址

3.传数组

4.可变参数


一、函数

1.定义
类型名 函数名(参数列表)
{

    函数体

}

2.函数的声明

所谓声明(Declaration),就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,稍后我会把定义补上。

代码举例:

#include 

void print_C();//函数的声明 

//函数的定义 
void print_C()
{
	printf(" ###### n");
	printf("##    ## n");
	printf("##       n");
	printf("##       n");
	printf("##       n");
	printf("##    ## n");
	printf(" ###### n");
}

int main()
{
	print_C();//函数的调用 
	
	return 0;
	
}

运行结果:

3.函数的参数和返回值
  • 有时候,函数需要接收用户传入的数据,就需要使用到函数的参数。根据需求,函数的参数可以有多个,类型也可以各不相同。而函数的返回值通常的反馈函数的计算结果,也可以用来表示函数的执行结果。

代码实战1:编写一个函数sum,由用户输入参数 n,计算 1 + 2 + 3 + ... +(n-1)+ n  的结果并返回。

代码如下:

#include 

int sum(int n);

int sum(int n)
{
	int result = 0;
	
	do
	{
		result += n;
	}while(n-- > 0);
	
	return result;
}

int main()
{
	int n,result;
	
	printf("请输入n的值:");
	scanf("%d", &n);
	
	printf("1+2+3+...+(n-1)+n的结果是:%dn",sum(n));
	
	return 0;
}

运行结果:

代码实战2:编写一个函数max,接收两个整型参数,并返回它们中的较大的值。

代码如下:

#include 

int max(int,int);

int max(int x,int y)
{
	if(x > y)
		return x;
	else
		return y;
}
int main()
{
	int a,b,c;
	
	printf("请输入两个整数:");
	scanf("%d%d",&a,&b);
	
	c = max(a,b);
	printf("它们中的较大值是:%dn",c);
	
	return 0;
}

运行结果:

 二、参数和指针

1.形参和实参
  • 形参:形式参数;实参:实际参数。
  • 形参和实参用于数据传输。当函数发生调用时,实参的值会传递给形参,且传输具有单向性。
  • 形参变量只在函数的内部有效。

2.传值和传址

不使用指针时:

代码举例:

#include 

void swap(int x,int y);

void swap(int x,int y)
{
	int temp;
	
	printf("In swap,互换前:x = %d, y = %dn",x,y);
	
	temp = x;
	x = y;
	y = temp;
	
	printf("In swap,互换后:x = %d, y = %dn",x,y);
}
int main()
{
	int x = 3,y = 5;
	
	printf("In main,互换前:x = %d, y = %dn",x,y);
	swap(x,y);
	printf("In main,互换后:x = %d, y = %dn",x,y);
	
	return 0;
	
}

运行结果:

 使用指针后:

代码举例:

#include 

void swap(int *x,int *y);

void swap(int *x,int *y)
{
	int temp;
	
	printf("In swap,互换前:x = %d, y = %dn",*x,*y);
	
	temp = *x;
	*x = *y;
	*y = temp;
	
	printf("In swap,互换后:x = %d, y = %dn",*x,*y);
}
int main()
{
	int x = 3,y = 5;
	
	printf("In main,互换前:x = %d, y = %dn",x,y);
	swap(&x,&y);
	printf("In main,互换后:x = %d, y = %dn",x,y);
	
	return 0;
	
}

运行结果:

3.传数组

代码举例:

#include 

void get_array(int b[10]);

void get_array(int b[10])
{
	printf("sizeof b: %dn",sizeof(b));
}
int main()
{
	int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	printf("sizeof a: %dn",sizeof(a));
	get_array(a);
	
	return 0;
}

运行结果:

4.可变参数
#include 

 -va_list
 -va_start
 -va_arg
 -va_end

代码举例:

#include 
#include 

int sum(int n, ...);

int sum(int n, ...)
{
	int i,sum = 0;
	
	va_list vap;
	
	va_start(vap,n);
	
	for(i = 0;i < n; i++)
	{
		sum += va_arg(vap,int);
	}
	va_end(vap);//关闭参数列表 
	
	return sum;
}

int main()
{
	int result;
	
	result = sum(3, 1, 2, 3);
	printf("result = %dn",result);
	
	result = sum(5, 1, 2, 3, 4, 5);
	printf("result = %dn",result);
	
	result = sum(6, 3, 1, 2, 4, 99, 100);
	printf("result = %dn",result);
	
	return 0;
}

运行结果:

 

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038152.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号