c++自定义函数

article/2025/8/28 3:45:15

对于小型应用程序来说不设计自定义函数完全可行,但随着程序越来越大,越来越复杂,实现的功能越来越多,如果不使用函数,main函数将变的越来越复杂越来越雍肿越来越令人难懂,而在更改程序的每一个功能的时候,往往要对整个main函数继续修改,所以在程序设计中,函数的设计与调用是很重要的一个部分。

例1:计算一个正方形的面积

#include<iostream>
using namespace std;int area(int x)
{return x*x;
} int main(){int a;cin>>a;cout<<"面积为"<<area(a);return 0;}

1)在4~7行声明且实现了函数area

2)在14行调用了函数area得到正方形的面积

一.函数的基本原型

通过例1中函数area我们可以知道函数原型的组成部分如下

1)返回值类型可以是c++基本数据类型,也可以是类,函数返回值类型必须与函数返回值匹配。

2)函数参数可以为空,可以不为空,为空时在调用该函数时,不输入认真参数;不为空时,函数参数可以有一个或者多个,这取决于你的寻求。

int test1()
{int a;return a;  //编译正确 
}int test2()
{double b;return b; //报错 
}int test3(int a,int b)//多个函数参数 
{return a+b;
}

二.函数的实现是什么

例2

//质数判断
bool isprime(int x){   //如果x为小于2得数 则肯定不为质数 if (x < 2 ||( x & 1 == 0)){return 0;}for (int i = 2; i <= sqrt(x); i++) {if (x % i == 0) {return 0;}}return 1;
}

在例2中

bool isprime(int x)  为函数的声明。

为函数的实现。

三.函数调用和实参形参是什么

例3

//设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)
//求N的值#include<iostream>
using namespace std;int rve(int num)
{int sum = 0;while (num != 0){sum = sum*10 + num % 10;num = num / 10;}return sum;
}int main()
{for (int i = 1000; i < 10000; i++){int v_num = rve(i);if (v_num == i * 9){cout << i << endl;}}return 0;
}

1)函数调用:在23行的int v_num = rve(i)实现了对rve函数的调用,值i被传入rve函数,返回值i的

 倒序数。

2)函数的实参形参,在23行的int v_num = rve(i)中,i就是函数的实参,而num就形参,他们的值相同都互不影响,如果在函数rve中修改num的值,是不会对main函数i的值产生影响,除非使用引用的方法传递参数。

//#include<iostream>
//#include<string>
//using namespace std;
//
//int get_letter(string let)
//{	
//	int sum = 0;
//	string letter[9] = { "one","two","three","four","five","six","seven","eight","nine" };
//	int n[9] = { 3,3,5,4,4,3,5,5,4 };
//	for (int i = 0; i < 9; i++)
//	{
//		int ret = 0;
//		char p[5];
//		letter[i].copy(p, 5, n[i]);
//		*(p + 5) = '\0';
//		for (int j = 0; j < 5; j++)
//		{
//			if (p[j]==NULL)
//			{
//				break;
//			}
//			else
//			{
//				ret++;
//				if (p[j] == let[j])
//				{
//					sum++;
//				}
//			}
//		}
//		if (sum >= ret)
//		{
//			return i;
//		}
//		
//	}
//}
//
//int main()
//{	
//	string letter[9]= { "one","two","three","four","five","six","seven","eight","nine" };
//	int total;
//	cin >> total;
//	while (total != 0)
//	{
//		string one_letter;
//		cin >> one_letter;
//		
//		int num=get_letter(one_letter);
//		cout << letter[num] << endl;
//		total--;
//	}
//
//	return 0;
//}#include<iostream>
using namespace std;//编写一个不返回返回值的函数
void test(int num)
{cout << "num=" << num << endl;num = 2;//修改num的值cout << "num=" << num << endl;
}int main()
{int i = 1;cout << "i=" << i << endl;test(i);//在函数test中传入icout << "i=" << i << endl;//观察i的值在num的值被修改后是否发生变化
}

输出:

i=1
num=1
num=2
i=1

引入传入

#include<iostream>
using namespace std;//编写一个不返回返回值的函数
void test(int &num)// 即int &num=i
{cout << "num=" << num << endl;num = 2;//修改num的值cout << "num=" << num << endl;
}int main()
{int i = 1;cout << "i=" << i << endl;test(i);//在函数test中传入icout << "i=" << i << endl;//观察i的值在num的值被修改后是否发生变化
}

输出:

i=1
num=1
num=2
i=2       //i的值因为num的修改而发生变化,可以说明在引用传递中,num和i是绑定在一起的;

            //可以这样理解例如一个他真名叫吴衍林 他小名叫五五,所以五五和吴衍林代表着同一个人,这里的num和i的关系就可以理解为大名和小名的关系,即代表着同一个东西,只是名字的不同。

四.函数的重载

函数类型相同  函数名相同  函数列表不同

#include<iostream>
using namespace std;//编写一个不返回返回值  参数列表为空的函数
void test()
{cout << "一个不返回返回值  参数列表为空的函数" << endl;
}//函数的重载
void test(int a)
{cout << "函数的重载" << endl;cout << a << endl;
}int main()
{test();test(1);
}

输出

一个不返回返回值  参数列表为空的函数
函数的重载
1

ps:以上是我对函数的理解,可能有一些不完美不全面甚至错误的地方,希望谅解,如果可以的话指出的错误,感谢您阅读我这篇文章。


http://chatgpt.dhexx.cn/article/Y0DkN54C.shtml

相关文章

C++ 自定义函数

C的函数分两种&#xff1a; 今天&#xff0c;我们就来讲一下自定义函数。 好了&#xff0c;自定义函数讲完了&#xff0c;若想了解其他关于自定义函数的内容&#xff0c;请点击下面方框&#xff1a; C递归算法_闪耀的天狼星的博客-CSDN博客_c递归算法汉诺塔大家都玩过吧&#…

C语言:自定义函数实现对字符串的复制

#include <stdio.h> void f(char*str1,char*str2)//函数名为f&#xff0c;自定义字符串连接函数 {int i0;while(str2[i]!0) {str1[i]str2[i];//把b复制到a中i;}str1[i]\0;//添加字符串结束符 } int main() {char a[100],b[100];puts("请输入字符串:\n");gets…

C语言之自定义函数(综合)

//设定一个函数&#xff0c;来比较两个数之间的较大值 int get_max(int x, int y) {int z 0;if (x > y)z x;elsez y;return z;} int main() {int a 10;int b 20;int maxget_max(a, b);printf("%d", max);return 0; } //函数返回类型的地方写出&#xff1a;vo…

[C语言] 函数:库函数--自定义函数--函数的调用--练习--详解<个人>------(1)

文章目录 前言一. 函数是什么&#xff1f;二. C语言中函数的分类三. 库函数四. 自定义函数五. 函数的调用六. 练习总结 前言 本节内容主要记录函数的相关内容&#xff0c;其中包括&#xff1a;库函数&#xff0c;自定义函数&#xff0c;函数的调用&#xff0c;函数的习题练习。…

C语言中的函数 | 库函数和自定义函数

写在前面: 今天我们需要学习和了解的是C语言中的函数,其中C语言的函数划分为库函数和自定义函数两种.接下来我们一起探究两者之间的关系. 一.C语言中函数的分类 库函数自定义函数 二.库函数 库函数到底是什么呢? 顾名思义,可以通俗的理解为库里面的函数.这些函数都是频繁使…

c++自定义函数简单介绍

大家好&#xff0c; 今天给大家介绍一下自定义函数。 如有错误请在评论区指出 正文&#xff1a; 1.简单介绍&#xff1a; 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数&#xff0c;即主函数 main() &#xff0c;所有简单的程序都可以定义其他额外的函数…

C语言入门系列 - 自定义函数

C语言入门系列 - 自定义函数 第一节 C 语言基础以及基本数据类型 第二节 C 语言运算符 第三节 C 语言控制语句 第四节 C 语言自定义函数 第五节 C 语言修饰变量的关键字 第六节 C 语言构造数据类型–数组 第七节 C 语言字符串 第八节 C 语言指针 第九节 指针与函数、指针函数、…

C语言-函数(自定义函数)

C语言中函数的分类&#xff1a; 1 库函数 2 自定义函数 自定义函数 如果库函数能干所有的事情&#xff0c;那还要程序员做什么&#xff1f; 所以更重要的是自定义函数 函数的组成&#xff1a; ret_type fun_name (part1) { statement; //语句项 &#xff08;函数体&…

C语言自定义函数使用

补充1&#xff1a;优先级&#xff0c;解答问题区分*p,*p0,*p0 <1>.首先要理解前后置的区别&#xff0c;前置&#xff0c;先计算后使用&#xff1b;后置&#xff0c;先使用后计算。 可用示例理解&#xff1a; <2>.其次要理解操作符的优先级 优先级从高到低&#…

C语言【库函数与自定义函数】详解

文章目录 一.什么是函数二.库函数1. 什么是库函数2. 为什么会有库函数&#xff1f;3.使用库函数的注意事项4.对学习库函数的建议 三.自定义函数1.什么是自定义函数2.自定义函数举例 一.什么是函数 提起函数&#xff0c;我们可能并不陌生&#xff0c;我们可能会联想到数学中的函…

C语言中的函数(重点介绍自定义函数)

C语言中的函数分为库函数和自定义函数&#xff0c;本篇重点介绍自定义函数中的函数调用 函数由一个或多个语句块组成&#xff0c;负责完成某项特定任务&#xff0c; 相较于其他代码&#xff0c;具有相对的独立性&#xff0c;一般会有返回值和输入参数&#xff0c;提供对过程的封…

C语言自定义函数的声明

C语言函数为什么要声明呢&#xff1f;我们在创建自定义函数的都知道要将自定义子函数放在主函数前面那么是为什么呢&#xff1f;可不可以不放在前面呢&#xff1f;小问号你是不是也一样有很多朋友呢&#xff1f; 答案是可以不把我们自己的自定义子函数放在前面&#xff1f;但是…

c语言函数详解1——自定义函数

这篇文章理论性知识比较多&#xff0c;不过对于初学者对于函数的理解会有更深层次的帮助 目录 c语言的函数——子程序 自定义函数 c语言的函数——子程序 *是大型程序中的某部分代码&#xff0c;由一个或者多个语句组成&#xff0c;她负责完成某项特定的任务&#xff0c;相较…

自定义函数

目录 一、自定义函数 二、函数参数 、传值调用和传址调用 2、1 传值调用 2、2 传址调用 三、函数的嵌套和链式访问 四、函数递归 一、自定义函数 C语言中有两类函数&#xff0c;一类是库函数&#xff0c;另外一类是自定义函数。自定义函数从字面意思上理解就是自…

C语言自定义函数

函数定义 return_type function_name([datatype1 arg1],[datatype1 arg2],...) { //函数体 } 函数三要素 返回值类型 函数名 参数列表 自定义函数的完整写法 #include <stdio.h> // 函数原型 int sum(int,int); // 调用函数 int main() { int sum(); } // 函数定义 i…

学习pyqt 继承中self的疑问

前面学习了&#xff0c;面对对象编程&#xff0c;继承&#xff0c;有了一些理解。继续学习pyqt5 看到下面有了一些疑问。 import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIconclass Example(QWidget):def __init__(self):super().…

Python中类函数中self是什么

首先我们来看两组代码运行的结果 代码组一&#xff1a; class C1:def func1():x10print("func1的x&#xff1a;",x)def func2(self):x20print("func2的x&#xff1a;",x)C1.func1() C1.func2()结果如下 代码组二&#xff1a; class C1:def func1():x…

python中return self用法详解

直接上代码来理解return self的用法&#xff01; 示例代码1&#xff1a; class Test(object):def __init__(self):self.age 25def add(self):self.age 1print(self.age)obj Test() obj.add()运行结果&#xff1a; 有时候当我们想对实例对象的方法进行连续调用时&#xff0…

Python——self参数

self 的意思是“自己”,表示的是对象自身,当某个对象调用成员方法的时候,Python 解释器会自动把当前对象作为第1个参数传给 self ,用户只需要传递后面的参数就可以了。 self 参数的应用&#xff1a; #program0706.py self 参数的应用 class Animal:类中未定义构造方法&#x…

php 中self什么意思,php中self的用法是什么

php中self的用法&#xff1a; self是指向类本身&#xff0c;也就是PHP self关键字是不指向任何已经实例化的对象&#xff0c;一般self使用来指向类中的静态变量。 1、self可以访问本类中的静态属性和静态方法&#xff0c;可以访问父类中的静态属性和静态方法。 相关推荐&#x…