C语言函数与变量深度解析
字符串转整型atoi(ascii to int) atof(ascii to float)整型转字符串: sprintf#include stdio.h #include stdlib.h int main() { char str[50]12345AABB1122; int result atoi(str); printf(result %d\n,result); char str2[50]3.141592364; double result2 atof(str2); printf(result2 %lf\n,result2); return 0; }#include stdio.h int main() { char str[50]{0}; int num 12345; sprintf(str,%d,num); char str2[50]{0}; double num2 3.14456677; sprintf(str2,%lf,num2); printf(int:%s double:%s \n,str,str2); return 0; }函数避免重复的代码提高服用性。模块化编程把一个复杂的问题给拆分成一个个小的功能模块。低耦合高内聚函数定义实现具体功能的一个模块。尽可能的功能单一。函数的定义定义语法返回类型 函数名称--》 括号内的是参数列表 多个用逗号隔开 { return 表达式 {返回值 int , long ,double ,float ,char , void不返回任何类型情况一表示函数是否成功的状态 0表示成功情况二计算结果函数名标识符字母下划线。参数会与其他模块进行交互。如果没有参数参数列表空着如果有多个参数的话使用逗号隔开。参数必须有数据类型。不能返回数组类型。函数调用函数在调用前必须先声明告诉编译器有这个函数。声明前需要先定义函数。.h:c语言头文件主要放声明类信息 .c:C语言源文件存储实现类的信息函数的声明 int cmptnum(int a,int b);函数的调用需要使用是一个叫函数调用运算符 函数名参数参数类型要匹配个数要相同。可以是常量变量表达式。在函数调用完成后因为是表达式所以是有类型和值的。由return返回出来。#include stdio.h int cmptwonum(int a,int b) //参数, 形式参数 { if(ab) { printf(num1 num2\n); } else { printf(num1num2\n); } return 0; } int main() { int a 10; int b 20; cmptwonum(a,b); //实参 int a1 30; int a2 50; cmptwonum(a1,a2); int a3 20; int a4 70; cmptwonum(a3,a4); return 0; }变量的作用域和生存周期作用域能够使用变量的范围被称为变量的作用域局部变量函数内部定义的变量还有函数的参量。 被包含在{}或中 局部变量的作用域在离该变量最近的大括号内 。 如果在一个局部范围内有一个大括号在大括号内部可以有同名标识符那么内层变量会遮挡外部变量使用变量的话访问二是内部变量。全局变量变量在整个工程中都可以被访问生命周期从变量的创建开始到变量内存对应的回收之间的这段时间。局部变量的生命周期从定义变量开始到函数结束从定义出开始到最近的右大括号结束全局变量的生命周期在a.out创建到消亡变量才会被回收。存储类型存储类型 数据类型 标识符 auto int a; register int b; static int d ; int e ;auto: 自动类型就是普通的局部变量 auto int aint a;auto可以省略。register:寄存器变量register int b告诉编译器建议把b这个变量存储在CPU的寄存器中。extern int c和全局变量搭配 extern int fun(int a,int b)//函数的声明出现在头文件中。假如在1.c定义了一个全局变量需要在2.c中定义全局变量需要externstatic:(静态static int d; 使用static修饰变量的话那么这个变量会存储在静态区数据区可执行程序的内存分布图

相关新闻

深入浅出(十三)QCustomPlot库—高性能二维绘图

深入浅出(十三)QCustomPlot库—高性能二维绘图

QCustomPlot库——高性能二维绘图1. QCustomPlot简介1.1 QCustomPlot下载1.2 QCustomPlot特性2. QCustomPlot基本结构3. QCustomPlot基本使用示例2.0 CMake 示例2.1 创建 QCustomPlot 控件2.2 绘制一条最简单的曲线2.3 常见图表类型2.4 交互操作2.5 标注、十字线和图层特性2.6 …

2026/11/13 15:38:59 阅读更多 →
3个简单步骤:用Candle快速构建你的第一个Rust机器学习应用

3个简单步骤:用Candle快速构建你的第一个Rust机器学习应用

3个简单步骤:用Candle快速构建你的第一个Rust机器学习应用 【免费下载链接】candle Minimalist ML framework for Rust 项目地址: https://gitcode.com/GitHub_Trending/ca/candle 还在为Python机器学习框架的庞大体积和复杂依赖而烦恼吗?想尝试用…

2026/10/24 5:37:06 阅读更多 →
从代码溯源到可观测性:构建软件变更追踪的“考古学”能力

从代码溯源到可观测性:构建软件变更追踪的“考古学”能力

最近在技术社区和开发者群里,一个名为“假鞋史”的项目突然火了起来。初看这个标题,你可能会一头雾水:这跟编程、跟技术有什么关系?难道要教大家鉴别球鞋真伪?恰恰相反,这个项目背后,是一个极其…

2026/11/5 11:35:45 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻