C语言:函数与参数传递 一、什么是函数计算机为了减少重复写代码的痛苦更方便人们将一些特殊的使用频率较高的代码进行使用创造出了函数我们只需要将其用特定的方法封装在使用时就不需要关注实现的细节 直接当做公式直接使用。二、函数的五大要素我们可以把函数当成一个工厂1.返回类型 工厂做什么 eg: int这个函数要去得到一个整数2.函数名 工厂名 告诉别人是做什么的见名知意3.函数参数列表 工厂原材料 这个函数可能需要什么参数进行处理4.函数体 加工过程 对参数列表进行相应的处理从而得到结 果就是具体的流程5.返回值 加工后得到的产品 函数体处理后的结果用return关键字交 出去举个// 对应上面的五大要素 int add(int a, int b) { // 1.返回类型(int) 2.函数名(add) 3.参数(a, b) int result a b; // 4.函数体加工过程 return result; // 5.返回值return 交出产品 }其中参数列表中可以没有参数也可以有多个。三、参数传递值传递// 加法函数把两个数加起来并返回结果 int add(int num1, int num2) { int sum num1 num2; return sum; // 把加工好的产品sum交出去 } int main() { int a 5; int b 8; // 调用工厂add把 a 和 b 传进去用 c 接收返回值 int c add(a, b); printf(a b %d\n, c); return 0; }在main里a是5b是8。当我们调用add(a, b)时计算机把5和8这两个值拷贝给了num1和num2。四、举例下面我将写几个简单的函数帮助我们更好的理解函数。1.判断素数素数一个大于1的自然数除了1和他自己没有别的数可以将其整除那他就是素数。int Is_Prime(int n) { if (n 1) { return 0; // 1 和小于 1 的数不是素数 } int num 0; // 计数器记录在 2 到 n-1 之间有几个能整除 n 的数 for (int i 2; i n - 1; i) { if (n % i 0) { num; //如果能找到可以整除n的数就加一 } } // 如果 num 是 0说明除了 1 和它自己没有别的因数了 if (num 0) return 1; // 是素数 else return 0; // 不是素数 }2.判断回文数回文数如果将一个数字翻转过来看与原数字相同的话那他就是一个回文数 eg: 12321int isPalindrome(int n) { // 负数不是回文数 if (n 0) { return 0; } int Or_num n; // 保存原始数字 int Re_num 0; // 用于存储翻转后的数字 while (n 0) { int num n % 10; // 拿到最后一位 Re_num Re_num * 10 num; // 拼接到新数字末尾 n n / 10; // 去掉原数字最后一位 } // 判断翻转后是否等于原数字 if (Re_num Or_num) { return 1; // 是回文数 } else { return 0; // 不是回文数 } }3.判断水仙花数水仙花数一个三位数它的每个位上的数字的“立方和”等于它自己int isNarcissistic(int n) { //确保它是三位数 if (n 100 || n 999) { return 0; } int Or_num n; int sum 0; // 用于累加各位的立方和 while (n 0) { int num n % 10; // 拿到最后一位 sum sum num * num * num; n n / 10; // 去掉最后一位 } // 判断立方和是否等于原数字 if (sum Or_num) return 1; // 是水仙花数 else return 0; // 不是 }