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修饰变量的话那么这个变量会存储在静态区数据区可执行程序的内存分布图

相关新闻