当前位置: 首页 > news >正文

C语言:函数

目录

 

1.函数的解释

2.C语言函数的分类

2.1库函数

2.2自定义函数

 2.2.1自定义函数的语法格式

2.2.2自定义函数的实践

(1)第一题:欢迎光临

(2)第二题 打印数字的平方

​编辑 (3)第三题 计算和

3.函数的参数

3.1值传递的表现  --- 形参

3.2地址传递的表现  --- 实参

3.3函数参数的使用

1)计算两个数的最大公因数(欧几里得算法)

 2)冒泡排序 -- 简单排序

4.函数的返回值

4.1例子

5.函数的调用

6.函数的作用域

6.1局部变量解释

6.2全局变量解释

7.函数的嵌套使用 

7.1函数的嵌套实践 

(1)判断闰年并输出该年每月的天数

(2) 数字加密和解密

 8.递归

8.1详解递归

 8.2递归实践

(1)二叉树遍历

(2)汉诺塔


 

1.函数的解释

       函数是将一个标识符(函数名)关联到一条复合语句(函数体)的 C 语言构造。每个 C 程序都从Main函数开始执行,也从它或者调用其他用户定义函数或库函数终止。

 详细C官方函数部分链接:函数 - cppreference.com

//add是一个自定义函数
void add(int a, int b) 
{//把下面的数,传给a,b,在进行相加,相加结果直接打印出来printf("x + y = %d", a + b);
}

2.C语言函数的分类

        在C语言中,一般函数分为:“库函数”,“自定义函数”。库函数是指:C语言自带的函数。而自定以函数,顾名思义就是用户自己定义一个函数出来使用,要注意的是,在创建函数的时候一定要让人看得懂,就是说,你的函数必须是让人看得懂的函数,不然在日后的工作中是很麻烦的一件事情。

2.1库函数

​库函数相关头⽂件:https://zh.cppreference.com/w/c/header

定义库函数是C语言标准提供的函数,这些函数是已经弄好的,可以直接使用的,能够帮助我们在一些常见的任务中帮助我们完成。如:“输入输出”,"字符串处理这些"。

输入输出函数(stdio.h)

输入输出函数,其实你之前是见过,就是我们所熟知的头文件。stdio.h就是标准库函数,输入输出,输出:printf()函数用于输出。例如:

#include <stdio.h> //标准输入输出函数
int main() //main程序的入口
{int num = 10; printf("num的数字是:%d\n", num); //有了stdio.h才能使用printf()输出函数
}

 输入函数,这个函数你也见过,并且你经常去使用,它就是scanf(),标准输入函数,有了头文件就可以使用它。例如:

2.2自定义函数

        定义:在写代码时,我们根据需求去编写代码,遇到哪些特殊需求时,可以根据自己的需求来自定义函数,来满足这个需求,这些任务一般是库函数无法直接完成,或者是为了让程序分解,更容易管理。

 2.2.1自定义函数的语法格式

返回值类型 自定义函数 (形式参数)
{语句;
}

2.2.2自定义函数的实践

(1)第一题:欢迎光临

#include <stdio.h>
//无返回 自定义函数 print_welcome 打印欢迎
void PWC()
{printf("欢迎光临!!!!\nC语言:详解函数");
}int main()
{PWC(); //调用函数return 0;
}

f965a90e3e2042d9a7904219e62ce528.png

(2)第二题 打印数字的平方

#include <stdio.h>
//返回值 自定义函数: print_squart
void PSquart(int num) //值传递(形参)
{int squart = num * num;printf("这个数字的平方是: %d", squart);
}
int main()
{printf("请输入100以内的(算平方): ");int number = 0;scanf("%d", &number);PSquart(number);return 0;
}

10d340ff240c4e9db9575ddb271972be.png (3)第三题 计算和

#include <stdio.h>
int PSum(int a, int b)
{return a + b;
}
int main()
{int a = 0;int b = 0;while (scanf("%d %d", &a, &b) != EOF){long long result = PSum(a, b);printf("%d+%d=%d", a, b, result);}return 0;
}

6ff62833d10147d58be56bac9aff85cf.png

 

3.函数的参数

形式参数(形参):在函数定义中的参数称为形式参数。例如上面add函数中的a和b,它们在函数被调用时会被分配内存空间,用于接收传递过来的实际值。

实际参数(实参):在调用函数时传递给函数的参数称为实际参数。例如,如果在主函数中有int result = add(3,5);这里的3和5就是实际参数。实参的值会被复制到对应的形式参数种。

参数传递方式主要有值传递,在地址传递中的时候,我们的值传递中,这个实际参数的值复制到形式参数中,所以函数内部对形参的修改不会影响到实参。相反的如果时地址传递的话,值会被改变。

3.1值传递的表现  --- 形参

在值传递中,是无法改变值的,相反的地址传递可以改变值。

#include <stdio.h>
void modify(int x) 
{x = 10;
}
int main() 
{int num = 5;modify(num);// num的值仍然是5,因为是值传递printf("%d", num);return 0;
}

527492aa44154ab2b1fb9c0c73093037.png

3.2地址传递的表现  --- 实参

地址传递时,我们是可以改变其值的。相反的值传递就不可以改变其值。

#include <stdio.h>
void modify(int *x) 
{*x = 10;
}
int main() 
{int num = 5;modify(&num); //地址传递printf("%d", num);return 0;
}

8bcd5c7a7b1446588e5a9ba6f4277723.png

3.3函数参数的使用

1)计算两个数的最大公因数(欧几里得算法)

#include <stdio.h>
int gcd(int a, int b)
{if (b == 0){return a;}else{return gcd(b, a % b);}
}int main()
{int num1 = 24;int num2 = 36;int result = gcd(num1, num2);printf("%d 和 %d 最大公约数是 %d\n", num1, num2,result);return 0;
}

24036facbef640a19d328b4f740f630b.png

 2)冒泡排序 -- 简单排序

#include <stdio.h>
void bubble_Sort(int arr[], int n)
{int i, j, temp;for (i = 0; i < n - 1; i++){for (j = 0; j < n - i - 1; j++){if (arr[j] > arr[j + 1]){temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}
int main()
{int arr[] = { 1,9,5,3,7,8 };int a = sizeof(arr) / sizeof(arr[0]);bubble_Sort(arr, a);for (int i = 0; i < a; i++){printf("%d ", arr[i]);}return 0;
}

41fdc72fc61f41e6b29549c944d21563.png

4.函数的返回值

函数可以返回一个值调用函数,返回值的类型在函数头中指定,如一个add函数返回一个整数,如果函数不需要返回值,可以将返回类型指定为void。

4.1例子

 一个题目中可以有多个return语句,但是每次调用函数时只会执行其中一个return语句

int max(int a, int b)
{if (a > b) {return a;} else {return b;}
}

5.函数的调用

函数在定义后,需要在其他地方,调用执行这功能,函数调用形式是函数名加上实参列表。

int main() 
{int result = add(2, 3);// 这里调用了add函数,并将返回值存储在result中return 0;
}

6.函数的作用域

6.1局部变量解释

 局部变量:函数内部定义的变量称为局部变量。它们的作用域仅限函数内部,其实跟之前所学的局部变量和全局变量没有上面不同,举个例子,在add函数中的sum变量就是局部变量。当函数执行结束的时候,局部变量的内存就会被释放。

6.2全局变量解释

全局变量:在所有函数外部定义的变量称为全局变量。全局变量的作用域从定义位置开始到整个源文件结束。全局变量可以被多个函数访问和修改,但是过多的去使用全局变量会导致程序的可读性变差,所以不建议去过多的使用全局变量。

int a = 10;
void func() 
{//可以访问和修改aa++;
}

7.函数的嵌套使用 

在C语言中函数是可以被嵌套的,即一个函数可以调用另一个函数,而被调用的函数又可以调用其他函数。

7.1函数的嵌套实践 

(1)判断闰年并输出该年每月的天数


编写函数判断给定年份是否为闰年,再编写一个函数输出该年份每个月的天数,通过函数嵌套实现。闰年的判断规则:能被 4 整除但不能被 100 整除,或者能被 400 整除。

#include <stdio.h>//判断闰年函数
int is_leap_year(int year)
{return (year % 4 == 0 && year % 100 != 0 || (year % 400 == 0));
}//输出每月天数函数,在嵌套调用判断闰年函数
void print_days(int year)
{int days[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };if (is_leap_year(year)){days[1] = 29;}for (int i = 0; i < 12; i++){printf("Month %d : %d days\n", (i + 1), days[i]);}
}int main()
{int year = 2025;print_days(year); //值传递return 0;
}

6c72f9842733453d9236e7e0ea19bd1b.png

(2) 数字加密和解密

设计一个简单的数字加密和解密,加密的需求:数字加上5摸10取余,在江结果与原数字交换位置。解密是加密的逆过程。

#include <stdio.h>
// 加密函数
void encrypt(int num[], int size) 
{for (int i = 0; i < size; i++) {num[i] = (num[i] + 5) % 10;if (num[i] >= 10) {int temp = num[i] % 10;num[i] = num[i] / 10 + temp * 10;}}
}// 解密函数,嵌套调用加密函数的部分逻辑
void decrypt(int num[], int size) 
{for (int i = 0; i < size; i++) {if (num[i] >= 10) {int temp = num[i] % 10;num[i] = num[i] / 10 + temp * 10;}num[i] = (num[i] + 10 - 5) % 10;}
}int main() 
{int numbers[] = { 12, 34, 56, 78, 90 };int size = sizeof(numbers) / sizeof(numbers[0]);printf("Original numbers: ");for (int i = 0; i < size; i++) {printf("%d ", numbers[i]);}printf("\n");encrypt(numbers, size);printf("Encrypted numbers: ");for (int i = 0; i < size; i++) {printf("%d ", numbers[i]);}printf("\n");decrypt(numbers, size);printf("Decrypted numbers: ");for (int i = 0; i < size; i++) {printf("%d ", numbers[i]);}printf("\n");return 0;
}

6102bc50dbe54d009dbf0b711d918a76.png

 8.递归

递归函数是指在函数的定义中调用自身的函数(就是自身调自身)。一个典型的例子是计算阶乘:

int factorial(int n) 
{if (n == 0 || n == 1) {return 1;} else {return n * factorial(n - 1);}
}

8.1详解递归

递归函数需要有一个终止条件(如n==0或n==1时返回1),否则函数会一直调用自身,导致栈溢出错误。递归函数的优点是可以使代码更加简洁,适用于解决具有递归性质的问题,如树的遍历、汉诺塔问题等。

 8.2递归实践

(1)二叉树遍历

#include <stdio.h>
#include <stdlib.h>
//二叉树节点结构体
typedef struct TreeNode 
{int val;struct TreeNode* left;struct TreeNode* right;
} TreeNode;
//先序遍历
void preorderTraversal(TreeNode* root) 
{if (root == NULL) {return;}printf("%d ", root->val);preorderTraversal(root->left);preorderTraversal(root->right);
}
//中序遍历
void inorderTraversal(TreeNode* root) 
{if (root == NULL) {return;}inorderTraversal(root->left);printf("%d ", root->val);inorderTraversal(root->right);
}
//后序遍历
void postorderTraversal(TreeNode* root) 
{if (root == NULL) {return;}postorderTraversal(root->left);postorderTraversal(root->right);printf("%d ", root->val);
}
//创建二叉树节点
TreeNode* createTreeNode(int val) 
{TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));node->val = val;node->left = NULL;node->right = NULL;return node;
}
int main() 
{//二叉树示例TreeNode* root = createTreeNode(1);root->left = createTreeNode(2);root->right = createTreeNode(3);root->left->left = createTreeNode(4);root->left->right = createTreeNode(5);printf("先序遍历结果: ");preorderTraversal(root);printf("\n");printf("中序遍历结果: ");inorderTraversal(root);printf("\n");printf("后序遍历结果: ");postorderTraversal(root);printf("\n");return 0;
}

24ffdb60ef6b4fd8a3020b976a8d5363.png

(2)汉诺塔

#include <stdio.h>
// 汉诺塔移动函数
void hanoi(int n, char from, char aux, char to) 
{if (n == 1) {printf("将圆盘1从%c柱移动到%c柱\n", from, to);return;}hanoi(n - 1, from, to, aux);printf("将圆盘%d从%c柱移动到%c柱\n", n, from, to);hanoi(n - 1, aux, from, to);
}
int main() 
{int num_disks = 3;hanoi(num_disks, 'A', 'B', 'C');return 0;
}

f5204016c0d24d46a4c215c6e52d1dfb.png

 

相关文章:

C语言:函数

目录 1.函数的解释 2.C语言函数的分类 2.1库函数 2.2自定义函数 2.2.1自定义函数的语法格式 2.2.2自定义函数的实践 (1)第一题&#xff1a;欢迎光临 (2)第二题 打印数字的平方 ​编辑 (3)第三题 计算和 3.函数的参数 3.1值传递的表现 --- 形参 3.2地址传递的表现 -…...

Vue 环境配置与项目创建指南

1. 前置要求 在开始配置 Vue 开发环境之前&#xff0c;需要确保以下工具已安装&#xff1a; Node.js&#xff1a;Vue 的构建工具依赖 Node.js。 npm 或 yarn&#xff1a;Node.js 自带 npm 包管理工具&#xff0c;也可以选择安装 yarn。 安装 Node.js 前往 Node.js 官网 下…...

关于物联网的基础知识(三)——物联网技术架构:连接万物的智慧之道!连接未来的万物之网!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于物联网的基础知识&#xff08;三&a…...

iOS - Tagged Pointer

1. 基本结构 // Tagged Pointer 的内存布局 union TaggedPointer {uintptr_t bits; // 完整的指针值struct {uintptr_t data : 60; // 数据部分uintptr_t tag : 4; // 类型标记};// 扩展类型struct {uintptr_t extData : 52; // 扩展数据uintptr_t extTag : …...

基于SpringBoot的音乐网站与分享平台

基于SpringBoot的音乐网站与分享平台 摘要1. 研究背景2.研究内容3.系统功能 3.1前台首页功能模块3.2在线听歌功能模块3.3后台登录功能模块3.4在线听歌管理模块 4.部分功能代码实现5.源码分享(免费获取) 需要源码联系我即可(免费获取)~ ??大家点赞、收藏、关注、评论啦 、查…...

【机器学习篇】 科技异次元的超强 “魔杖”,开启奇幻新程

一起开启这场旅行吧&#xff0c;关注博主&#xff0c;点赞支持不迷路&#xff0c;下面一同欣赏本篇的美妙吧&#xff01;&#xff01; &#xff01; 博主主页&#xff1a; 羑悻的小杀马特.-CSDN博客 在当今科技飞速发展的时代&#xff0c;机器学习宛如一把来自科技异次元的超强…...

opencv CV_TM_SQDIFF未定义标识符

opencv CV_TM_SQDIFF未定义标识符 opencv4部分命名发生变换&#xff0c;将CV_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE&#xff1b;CV_TM_SQDIFF_NORMED改为TM_SQDIFF_NORMED。...

OneFlow的简单介绍

OneFlow 是北京一流科技有限公司旗下的采用全新架构设计的开源工业级通用深度学习框架。以下是关于 OneFlow 的详细介绍&#xff1a; 本篇文章的目录 特点 功能 应用场景 发展历程 特点 简洁易用的接口&#xff1a;为深度学习相关的算法工程师提供一套简洁易用的用户接口…...

如何配置【Docker镜像】加速器+【Docker镜像】的使用

一、配置Docker镜像加速器 1. 安装/升级容器引擎客户端​ 推荐安装1.11.2以上版本的容器引擎客户端 2. 配置镜像加速器​ 针对容器引擎客户端版本大于1.11.2的用户 以root用户登录容器引擎所在的虚拟机 修改 "/etc/docker/daemon.json" 文件&#xff08;如果没有…...

《OpenCV》——模版匹配

文章目录 什么是模版匹配&#xff1f;函数介绍实例 什么是模版匹配&#xff1f; 模板匹配是在一幅图像中寻找与另一幅模板图像最匹配部分的技术。OpenCV 提供了多种模板匹配的方法&#xff0c;它在目标检测、物体识别等众多计算机视觉任务中有广泛的应用。例如&#xff0c;你有…...

【网络安全技术与应用】(选修)实验3 网络侦察

一、实验目的 培养学生综合运用搜索引擎、Whois数据库等手段对目标站点进行侦查的能力,了解站点查询常用的信息源及搜索工具,熟练掌握常见搜索工具的功能及使用技巧。培养学生使用搜索引擎在互联网查找特定设备的能力,熟悉联网设备搜索引擎的功能,熟练掌握设备搜索引擎的使…...

基于XGBoost的集成学习算法

目录 一、XGBoost原理1.1 提升方法&#xff08;Boosting&#xff09;1.2 提升决策树 &#xff08;BDT&#xff09;1.3 梯度提升决策树 &#xff08;GBDT&#xff09;1.4 极限梯度提升&#xff08;XGBoost&#xff09;1.4.1 XGBoost改进1.4.2 XGBoostcsklearn实现1.4.3 XGBoost回…...

【84键矮轴无线键盘】个人使用经历

推荐&#xff1a; 前行者MK84键&#xff08;理由&#xff1a;价格实惠&#xff0c;键位布局好&#xff0c;其他都是可接受程度&#xff09;K3 max&#xff08;理由&#xff1a;除了短命的续航、脚垫容易脱落&#xff0c;已无明显短板&#xff09; 我需要一把在小巧、舒适的主力…...

基于Arduino的FPV头部追踪相机系统

构建FPV头部追踪相机&#xff1a;让你置身于遥控车辆之中&#xff01; 在遥控车辆和模型飞行器的世界中&#xff0c;第一人称视角&#xff08;FPV&#xff09;体验一直是爱好者们追求的目标。通过FPV头部追踪相机&#xff0c;你可以像坐在车辆或飞行器内部一样&#xff0c;自由…...

Flutter:邀请海报,Widget转图片,保存相册

记录下&#xff0c;把页面红色区域内的内容&#xff0c;转成图片后保存到相册的功能 依赖 # 生成二维码 qr_flutter: ^4.1.0 # 保存图片 image_gallery_saver_plus: ^3.0.5view import package:demo/common/index.dart; import package:ducafe_ui_core/ducafe_ui_core.dart; i…...

CSS——16. nth—child序列选择器1

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>nth-child选择器</title><style type"text/css">/* 选择的是li的父元素&#xff08;ul&#xff09;中的第9个li子元素 */li:nth-child(9){color: red…...

【HarmonyOS 5.0】从0到1开发购物应用App(二):登录页对接口

【HarmonyOS Arkts笔记】http网络请求封装 【HarmonyOS Arkts笔记】ohos.data.preferences用户首选项实现存储信息 登录页 点击登录按钮调用login()方法 import { promptAction, router } from kit.ArkUI; import loginApi from "../../api/login" import Prefere…...

asp.net core webapi中的数据注解与数据验证

在这一课中&#xff0c;主要讲解了如何在 Web API 中使用数据注解&#xff08;Data Annotations&#xff09;和进行数据验证&#xff0c;以确保请求数据的有效性和完整性。 在 Web API 中&#xff0c;数据验证是确保客户端传递的数据符合业务规则和格式要求的关键步骤。数据注…...

VulnHub—potato-suncs

使用命令扫描靶机ip arp-scan -l 尝试访问一下ip 发现一个大土豆没什么用 尝试扫描一下子域名 没有发现什么有用的信息 尝试扫描端口 namp -A 192.168.19.137 -p- 尝试访问一下端口,发现都访问不进去 查看源代码发现了网页的标题 potato&#xff0c;就想着爆破一下密码 hydr…...

uniapp 微信小程序 自定义日历组件

效果图 功能&#xff1a;可以记录当天是否有某些任务或者某些记录 具体使用&#xff1a; 子组件代码 <template><view class"Accumulate"><view class"bx"><view class"bxx"><view class"plank"><…...

云架构Web端的工业MES系统设计之区分工业过程

云架构Web端的工业MES系统设计之区分工业过程 在当今数字化浪潮席卷全球的背景下,制造业作为国家经济发展的重要支柱产业,正面临着前所未有的机遇与挑战。市场需求的快速变化、客户个性化定制要求的日益提高以及全球竞争的愈发激烈,都促使制造企业必须寻求更加高效、智能的生产…...

Harbor 仓库部署(docker-compose 部署方式)

一、 安装的前提条件 硬件 资源 最低 推荐 cpu2C4C内存4G8G硬盘40G160G 软件 软件 版本 描述 dockerv17.0.6-ce 安装参考官方文档 Install Docker Engine | Docker Documentation docker-composev1.18.0 安装参考官方文档 Overview | Docker Documentation Openssllatest…...

机器学习基础-支持向量机SVM

目录 基本概念和定义 1. 超平面&#xff08;Hyperplane&#xff09; 2. 支持向量&#xff08;Support Vectors&#xff09; 3. 线性可分 4. 边界 SVM算法基本思想和分类 基本思想 间隔最大化 间隔&#xff08;Margin&#xff09; 软边距 SVM 核函数的概念 基本概念…...

卸载wps后word图标没有变成白纸恢复

这几天下载了个wps教育版&#xff0c;后头用完了删了 用习惯的2019图标 给兄弟我干没了&#xff1f;&#xff1f;&#xff1f; 其他老哥说什么卸载关联重新下 &#xff0c;而且还要什么撤销保存原来的备份什么&#xff0c;兄弟也是不得不怂了 后头就发现了这个半宝藏博主&…...

mongodb==安装prisma连接

官网下载mongodb,解压安装 Download MongoDB Community Server | MongoDB 修改bin/mongod.cfg # mongod.conf# for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data. storage:dbPat…...

python代码实现了一个金融数据处理和分析的功能,主要围绕国债期货及相关指数数据展开

# 忽略某些模块的提示信息 import warnings warnings.filterwarnings("ignore") # 在全局配置中添加RQData账号信息 import rqdatac as rq from typing import List import pandas as pd import numpy as np import re from datetime import datetime, timedelta,tim…...

声音是如何产生的

一、音频概述 RTMP中一般音频采用aac编码&#xff0c;采样率为44100HZ, 每帧1024采样&#xff0c;帧率43&#xff0c;23.2ms一帧 RTC中一般音频采用opus编码&#xff0c;采样率为48000HZ&#xff0c;每帧480采样&#xff0c;帧率100&#xff0c;10ms一帧 通道数&#xff08;c…...

Matlab回归预测大合集(不定期更新)-188

截至2025-1-2更新 1.BP神经网络多元回归预测&#xff08;多输入单输出&#xff09; 2.RBF神经网络多元回归预测&#xff08;多输入单输出&#xff09; 3.RF随机森林多元回归预测&#xff08;多输入单输出&#xff09; 4.CNN卷积神经网络多元回归预测&#xff08;多输入单输…...

CUDA编程【7】 线程束

文章目录 线程束和线程块线程束线程块 线程束的分化问题线程束分化&#xff08;Warp Divergence&#xff09;线程束分化的执行机制如何避免线程束的分化 线程束和线程块 线程束 线程束是SM中基本的执行单元当一个网格被启动&#xff08;即一个核函数被启动&#xff09;&#…...

nodejs:nodejs的技巧有哪些(2)

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它允许开发者构建高性能的网络应用。 1. 使用异步编程&#xff0c;利用 async/await 来处理异步操作&#xff0c;使代码更清晰、易读。 const fetchData async () > { const data await getDataFrom…...

构建数字化校园:定义与意义

随着信息技术的快速发展&#xff0c;"数字化校园"这一概念逐渐成为教育领域内热议的话题。数字化校园是指利用先进的信息技术手段&#xff0c;如互联网、大数据、云计算等&#xff0c;对学校的教学、科研、管理和服务等方面进行全面升级和优化的过程。它不仅改变了传…...

LabVIEW语言学习过程是什么?

学习LabVIEW语言的过程可以分为几个阶段&#xff0c;每个阶段的重点内容逐步加深&#xff0c;帮助你从入门到精通。以下是一个简洁的学习过程&#xff1a; ​ 1. 基础入门阶段 理解图形化编程&#xff1a;LabVIEW是一种图形化编程语言&#xff0c;与传统的文本编程语言不同&am…...

阿里云 人工智能与机器学习

阿里云的 人工智能&#xff08;AI&#xff09;与机器学习&#xff08;ML&#xff09; 服务为企业提供了全面的AI解决方案&#xff0c;帮助用户在多个行业实现数据智能化&#xff0c;提升决策效率&#xff0c;推动业务创新。阿里云通过先进的技术和丰富的工具&#xff0c;支持用…...

NUTTX移植到STM32

STM32移植NUTTX 1. Ubuntu下搭建开发环境1.1 先决条件1.2 下载 NuttX1.3 使用Make 进行编译1.4 烧录运行 2.通过NUTTX点亮LED2.1 部署操作系统2.2 修改配置文件2.3 编译运行程序 开发板&#xff1a;DshanMCUF407 官方开发文档&#xff1a;安装 — NuttX latest 文档 参考文档&…...

.NET 9.0 WebApi 发布到 IIS 详细步骤

微软表示&#xff0c;.NET 9 是迄今为止性能最高的 .NET 版本&#xff0c;对运行时、工作负载和语言方面进行了 1,000 多项与性能相关的改进&#xff0c;并采用了更高效的算法来生成更好的代码。 .NET 9 是 .NET 8 的继任者&#xff0c;特别侧重于云原生应用和性能。 作为标准期…...

麒麟 kylin v10 server 升级openssh 9.9p1

准备升级工作 yum install gcc make perl zlib zlib-devel pam pam-devel备份原有的ssh目录&#xff0c;以备后用 cp -r /etc/ssh /etc/ssh.bak cp /etc/pam.d/sshd /etc/pam.d/sshd.before cp /etc/ssh/sshd_config /etc/ssh/sshd_config.before解压源码压缩包 tar -zxf o…...

ollama+FastAPI部署后端大模型调用接口

ollamaFastAPI部署后端大模型调用接口 记录一下开源大模型的后端调用接口过程 一、ollama下载及运行 1. ollama安装 ollama是一个本地部署开源大模型的软件&#xff0c;可以运行llama、gemma、qwen等国内外开源大模型&#xff0c;也可以部署自己训练的大模型 ollama国内地…...

设计模式 行为型 策略模式(Strategy Pattern)与 常见技术框架应用 解析

策略模式&#xff08;Strategy Pattern&#xff09;核心思想是将算法的实现从使用该算法的类中分离出来&#xff0c;作为独立的对象&#xff0c;通过接口来定义算法家族&#xff0c;这样就可以很容易地改变或扩展算法。通过这种方式&#xff0c;可以避免在客户端代码中使用大量…...

2025资源从哪里来!

方案规划告诉你资源最好的答案&#xff1f; 方案一、如果你不知道啥资源可以到这里面找到初步的答案&#xff1f; 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 在这个网站你可以找到你对应的专业-对应的路线-对应的资源-对应的百度网盘里面全是免费的资源------------------惊喜不&…...

Alist-Sync-Web 网盘自动同步,网盘备份相互备份

Alist-Sync-Web 一个基于 Web 界面的 Alist 存储同步工具&#xff0c;支持多任务管理、定时同步、差异处理等功能。 如果好用&#xff0c;请Star&#xff01;非常感谢&#xff01; GitHub Gitee DockerHub 功能特点 &#x1f4f1; 美观的 Web 管理界面&#x1f504; 支持多任…...

【FlutterDart】 listView.builder例子二(14 /100)

上效果图 上代码&#xff1a; import package:flutter/material.dart;class ListRoles extends StatelessWidget {ListRoles({super.key});final List<String> entries <String>[, -, *, /];final List<int> colorCodes <int>[600, 500, 100, 50];o…...

《shared_ptr源码剖析》

【shared_ptr导读】上一节&#xff0c;我们为大家介绍了unique_ptr的底层原理和实现。相对于unique_ptr&#xff0c;shared_ptr也是被大家广泛使用的智能指针&#xff0c;shared_ptr内部的原理是怎样的&#xff1f;shared_ptr是多线程安全的吗&#xff1f; 本文将以Centos标准库…...

关于markdown实现页面跳转(调查测试:csdn(博客编写效果、发布效果)、typroa中md转pdf的使用情况)

一-方法介绍 [点击跳转到标题0](#1) <a href"#2">正文2</a>### <span id"2">标题0</span>二、跳转测试区 点击跳转到标题0 正文2 三、测试结果 场景MDspan-可标题写博客时候&#xff0c;右侧显示区效果可以发布博客的效果可以…...

入门级容器技术解析:Docker和K8s的区别与关系

目录 &#x1f3af;学习小目标&#xff1a; 关于容器 传统物理机&#x1f5a5;️ 虚拟机&#x1f4bb; 为什么使用容器技术呢&#xff1f;&#x1f914; 容器技术&#x1f943; Docker—容器化平台 K8s(Kubernetes)—容器编排系统​ Docker和K8s有什么关系和区别&#…...

《Rust权威指南》学习笔记(五)

高级特性 1.在Rust中&#xff0c;unsafe是一种允许绕过Rust的安全性保证的机制&#xff0c;用于执行一些Rust默认情况下不允许的操作。unsafe存在的原因是&#xff1a;unsafe 允许执行某些可能被 Rust 的安全性检查阻止的操作&#xff0c;从而可以进行性能优化&#xff0c;如手…...

数据库软考历年上午真题与答案解析(2018-2024)

本题考查计算机总线相关知识。 总线&#xff08;Bus&#xff09;是计算机各种功能部件之间传送信息的公共通信干线&#xff0c;它是由导线组成的传输线束。 根据总线连接设备范围的不同&#xff0c; 分为&#xff1a;1.片内总线&#xff1a;芯片内部的总线&#xff1b; 2.系统…...

HTML5 文件上传(File Upload)详解

HTML5 文件上传&#xff08;File Upload&#xff09;详解 HTML5 提供了强大的文件上传功能&#xff0c;允许用户通过网页选择文件并上传到服务器。以下是关于文件上传控件的详细说明。 1. 基本的文件上传控件 使用 <input> 标签的 type"file" 属性可以创建一…...

构建属于你的七牛云文件上传工具:Qiniu Uploader 详解(从 0 到 1 实现)

GitHub 仓库地址&#xff1a;https://github.com/hahala2333/qiniu-upload &#x1f4da; 简介 在现代 Web 开发中&#xff0c;静态资源的上传和管理是不可避免的需求。为了简化将本地资源上传到七牛云存储的过程&#xff0c;我们构建了 Qiniu Uploader 工具。它具备灵活的配置…...

Spring Boot 项目中集成 Kafka-03

在 Spring Boot 项目中集成 Kafka 有多种方式&#xff0c;适应不同的应用场景和需求。以下将详细介绍几种常用的集成方法&#xff0c;包括&#xff1a; 使用 Spring Kafka (KafkaTemplate 和 KafkaListener)使用 Spring Cloud Stream 与 Kafka Binder使用 Spring for Apache K…...

如何在2025年创建一个网站:使用US Domain Center和WordPress的终极指南

在本指南中&#xff0c;我们将向你展示如何正确地使用US Domain Center和WordPress创建一个网站。无论你是要启动一个个人博客&#xff0c;还是一个在线商店&#xff0c;我们都会提供简单易懂的步骤指导。无需技术技能 — — 只需按照我们的简单步骤操作&#xff0c;你就能在今…...