C语言 函数随记(1)

函数

在C中,子程序的作用由函数来完成。一个程序由一个主函数和若干个其他函数构成。
主函数调用其他函数,其他函数也可以互相调用
用途:1.提高代码复用性 好处:便于分别编写,分别编译
2.功能分解 提高调试效率
函数:主调函数(实参)。功能或服务的使用方式称为主调函数
被调函数(形参)。功能或服务的提供方式称为被调函数
方向:实参——形参( 单向传递 ) 实参和形参的类型应相同
传递方式:值传递,指针传递 C++:有引用传递
在调用函数时,给形参分配存储单元,并将实参对应的值传给形参,调用结束是,形参的值发生改变,实参单元仍旧保持原值。
调用函数的条件:调用函数必须是已经存在的(是库函数或用户自己定义的)
如果使用库函数,需将有关于#include包含在本文件中
使用自己定义的函数,应先函数声明

函数可以被嵌套调用,但是不可以嵌套调用
数组作为函数参数:形式上是一个数组名,但本质上是一个指针变量。通过形参数组名是无法获取数组大小的。
X86:sizeof(形参数组名)==4 B
X64:sizeof(形参数组名)==8 B
所以数组名作为函数参数时一般回家一个参数表名数组长度,通过形参数组名对数组元素的修改,会改变实参元素的值。
形参数组名与实参数组名类型名应严格一致。
用数组名做函数参数,应该在主调函数和被调函数分别定义数组。
函数分类:
c函数库自带的函数

— 主函数–

void main() // 主函数

— -数学函数 在math.h–

float sin(float x) //求正弦函数

float abs(float x) //求绝对值函数

----文件型函数 —

void feof(FILE *p) //是否文件末尾函数

void rewind(FILE *p) //文件定首位函数

int ftell(FILE *p)//文件指针位置函数

FILE fopen( “文件名称”,“文件打开方式”) //打开文件函数

flose(FILE *p) //文件关闭函数

fsanf(FILE *P,“格式字符串”,类型 类型名称) //格式化读函数 将数据从文件中读取到类型名称中

void fprintf(FILE *p,“格式字符串”,类型 类型名称) //格式化写函数 将数据从出入框中读取到文件中

void fputc(FILE *p, 类型 类型名称) //将字符串写到文件中

char fgetc(FILE *p) // 将数据从文件中写到字符中

–字符函数—

void putchar(char c)//将字符串输入到控制台上

char getchar()//字符写函数

–输入输出函数–

printf(“格式输出字符串”,类型参数名);

scanf(“格式输入字符串”,类型参数名地址);

—空间函数–

类型 *malloc(sizeof(类型)) //申请空间函数

类型 *calloc(1,sizeof(类型))//申请空间函数

free(类型) //释放空间函数

自定义函数

局部变量和全局变量

局部变量:从定义开始,到其所在的程序块结束而结束
全局变量:标示符声明在前,使用在后。未被赋初值,默认为0,。从定义开始,到
程序结束。作用:增加了函数间数据联系的渠道。
变量的存储类别:
动态存储方式:普通局部变量,函数形参
静态存储方式:全局变量,静态局部变量
auto变量:不专门声明static存储类别,都为动态的·分配在存储空间中
static声明局部变量:函数再次运行依旧能保留上一次运行的值,未初始化,默认值为0
举例:

int   n=1;
main()
{ static int  x=5;int y;y=n;
printf(“MAIN:x=%2d  y=%2d   n=%2d\n”, x,y,n)//5,1,1;
func();//6,21,11
printf(“MAIN:x=%2d  y=%2d  n=%2d\n”,x,y,n);//8,31,21
func();//8,31,21
}

func( )
{ static  int   x=4;
  int  y=10;
  x=x+2;
  n=n+10;
  y=y+n;
  printf(“FUNC:x=%2d  y=%2d  n=%2d\n”,x,y,n);}
 main()
   {increment();
    increment();
    increment();
   }
   
   increment()
  { int x=0;
   x+=1;
   printf(“%d”,x);
  }//111

这两个代码,一个是有静态变量static,继续按所得的是为上一次所计算得到的。
后一个,每次计算,x都被重新初始化,为(auto int——int)

extern声明外部变量:将文件中的全局变量扩展到文件中;在文件写:
extern 类型名 全局变量名

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值