C语言函数的声明、定义、调用方式

 更新时间:2026年02月12日 14:12:41   作者:Shen-Childe  
本文详细介绍了如何在不同情况下定义和使用函数,包括无返回值和有返回值的无参及有参函数,以及如何将数组作为函数参数,总结了两种在Java中声明和调用函数的方式

一、定义 无返回值 无参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	void NoReturnNoParameter();
	// 3、调用函数
	NoReturnNoParameter();
}

// 2、定义函数
void NoReturnNoParameter()
{
	printf("定义无返回值无参函数\n");
}

2、方法二

#include<stdio.h>

// 1、声明函数
void NoReturnNoParameter();

void main()
{
	// 3、调用函数
	NoReturnNoParameter();
}

// 2、定义函数
void NoReturnNoParameter()
{
	printf("定义无返回值无参函数\n");
}

3、方法三

#include<stdio.h>

// 1、定义函数
void NoReturnNoParameter()
{
	printf("定义无返回值无参函数\n");
}

void main()
{
	// 2、调用函数
	NoReturnNoParameter();
}

二、定义 无返回值 有参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	void NoReturnYesParameter(int x, int y);
	int x = 3, y = 9;
	// 3、调用函数
	NoReturnYesParameter(x,y);
}

// 2、定义函数
void NoReturnYesParameter(int x, int y)
{
	printf("定义无返回值有参:%d,%d\n",x, y);
}

2、方法二

#include<stdio.h>

// 1、声明函数
void NoReturnYesParameter(int x, int y);

void main()
{
	int a = 3, b = 9;
	// 3、调用函数
	NoReturnYesParameter(a,b);
}

// 2、定义函数
void NoReturnYesParameter(int x, int y)
{
	printf("定义无返回值有参:%d,%d\n",x, y);
}

3、方法三

#include<stdio.h>

// 2、定义函数
void NoReturnYesParameter(int x, int y)
{
	printf("定义无返回值有参:%d,%d\n",x, y);
}

void main()
{
	
	int x = 3, y = 9;
	// 3、调用函数
	NoReturnYesParameter(x,y);
}

三、定义 有返回值 无参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	int YesReturnNoParameter();
	int	a = YesReturnNoParameter();
	// 3、调用函数
	printf("%d\n", a);
}

// 2、定义函数
int YesReturnNoParameter()
{
	int a = 123;
	return a;
}

2、方法二

#include<stdio.h>

// 1、声明函数
int YesReturnNoParameter();

void main()
{
	// 3、调用函数
	printf("%d\n", YesReturnNoParameter());
}

// 2、定义函数
int YesReturnNoParameter()
{
	int a = 123;
	return a;
}

3、方法三

#include<stdio.h>

// 1、定义函数
int YesReturnNoParameter()
{
	int a = 123;
	return a;
}

void main()
{
	// 2、调用函数
	printf("%d\n", YesReturnNoParameter());
}

四、定义 有返回值 有参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	int YesReturnYesParameter(int a, int b);
	int a = 1, b = 3, c;
	// 3、调用函数
	c = YesReturnYesParameter(a, b);
	printf("%d\n", c);
}

// 2、定义函数
int YesReturnYesParameter(int a, int b)
{
	int c;
	c = a + b;
	return c;
}

2、方法二

#include<stdio.h>

// 1、声明函数
int YesReturnYesParameter(int a, int b);

void main()
{

	int a = 1, b = 3, c;
	// 3、调用函数
	c = YesReturnYesParameter(a, b);
	printf("%d\n", c);
}

// 2、定义函数
int YesReturnYesParameter(int a, int b)
{
	int c;
	c = a + b;
	return c;
}

3、方法三

#include<stdio.h>

// 1、定义函数
int YesReturnYesParameter(int a, int b)
{
	int c;
	c = a + b;
	return c;
}

void main()
{

	int a = 1, b = 3, c;
	// 2、调用函数
	c = YesReturnYesParameter(a, b);
	printf("%d\n", c);
}

五、数组为函数的参数

1、数组元素参数

  • 数组元素:数组类型和函数的形参变量类型一致即可
#include<stdio.h>

void main()
{
	// 形参类型与数组类型一致
	void test(int v);

	int a[10] = {1, 2, 3, 4, -1, -2, -3, -4, 2, 3};
	int i;

	for(i = 0; i < 10; i++)
	{
		// 数组元素下标
		test(a[1]);	// 2 2 2 2 2 2 2 2 2 2
	}
	printf("\n");
}

// 形参类型与数组类型一致
void test(int v)
{
	printf("%d ", v);
}

2、数组名参数

  • 数组名:数组名与函数形参类型都为同类型数组即可
#include<stdio.h>

void main()
{
	// 形参与数组名为同类型数组即可
	void test(int b[]);
	
	// 整形的数组
	int a[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
	test(a);	// 2 4 6 8 10
	putchar('\n');

}

// 形参与数组名为同类型数组即可
void test(int b[])
{
	int i = 0;
	for(; i < 5; i++)
	{
		printf("%d ", b[i]);	
	}
}

六、总结

方式一:在mian方法里或mian方法前声明函数(推荐)

  • 声明函数
  • 定义函数
  • 调用函数

方式二:在main方法前定义函数,可以不声明函数。

  • 定义函数
  • 调用函数

推荐写法:

void main()
{
	// 1、声明函数
	类型标识符 函数名(形参列表);
	// 3、调用函数
	函数名(形参列表);
}
// 2、定义函数
类型标识符  函数名(形参列表)
{
	函数体;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • opencv实现多张图像拼接

    opencv实现多张图像拼接

    这篇文章主要为大家详细介绍了opencv实现多张图像拼接功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C++ GDI实现图片格式转换

    C++ GDI实现图片格式转换

    GDI+(Graphics Device Interface Plus)是一种用于图形绘制和图像处理的应用程序编程接口(API),在Windows平台上广泛使用,本文就来介绍一下如何使用GDI实现图片格式转换吧
    2023-12-12
  • C语言实现简单停车场管理系统

    C语言实现简单停车场管理系统

    这篇文章主要为大家详细介绍了C语言实现简单停车场管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 深入浅析C++ traits技术

    深入浅析C++ traits技术

    traits就是提取“被传进的对象”对应的返回类型,让同一个接口实现对应的功能。因为STL的算法和容器是分离的,两者通过迭代器链接,本文通过实例代码给大家介绍C++ traits技术,感兴趣的朋友一起看看吧
    2021-05-05
  • OpenCV实现直线检测并消除

    OpenCV实现直线检测并消除

    这篇文章主要为大家详细介绍了OpenCV实现直线检测并消除,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • OpenCV和C++实现图像的翻转(镜像)、平移、旋转、仿射与透视变换

    OpenCV和C++实现图像的翻转(镜像)、平移、旋转、仿射与透视变换

    这篇文章主要给大家介绍了关于OpenCV和C++实现图像的翻转(镜像)、平移、旋转、仿射与透视变换的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • C语言用fstat函数获取文件的大小方法

    C语言用fstat函数获取文件的大小方法

    今天小编就为大家分享一篇关于C语言用fstat函数获取文件的大小方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++调用C#的DLL实现方法

    C++调用C#的DLL实现方法

    这篇文章主要介绍了C++调用C#的DLL实现方法,很有实用价值,需要的朋友可以参考下
    2014-07-07
  • C++ 基于BFS算法的走迷宫自动寻路的实现

    C++ 基于BFS算法的走迷宫自动寻路的实现

    这篇文章主要为大家介绍了C++ 基于BFS算法实现走迷宫自动寻路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C语言实现弹跳小球

    C语言实现弹跳小球

    这篇文章主要为大家详细介绍了C语言实现弹跳小球,设置了小球分数及过关难度,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03

最新评论