C函数
1、C语言中的函数模块
函数是通过函数调用而执行的,函数调用语句指定被调用的函数名,并提供调用函数执行指定任务所需要的信息,即实参。
所有在函数内部定义的变量都称为局部变量(Local variable)只在定义他们的函数内部有效。
一个比较大小的函数(小菜鸡就是要从最简单的基础做起)
#include<stdio.h>
int maximum(int x,int y,int z);
int main(void){
int number1,number2,number3;
printf("Enter three numbers:");
scanf("%d%d%d",&number1,&number2,&number3);
printf("Max is:%d",maximum(number1,number2,number3));
return 0;
}
int maximum(int x,int y,int z){
int max=x;
if(y>max)max=y;
if(z>max)max=z;
return max;
}
2、<stdlib.h>函数 包含了数值文本互换函数,内存分配函数,随机数函数,其他工具函数的函数原型。
按值调用:程序为实参创建副本,对副本的改变不会影响原来实参的值。
按引用调用:主调函数允许对原值的修改。
3、随机数生成
rand()函数随机产生一个0—RAND-MAX(32767)之间的整数值。
随机掷骰子并记录所出现的点数
//模拟掷骰子的过程
#include<stdio.h>
#include<stdlib.h>
int main(void){
int n[6]={0};
int i;
int a[20]={0};
for(i=1;i<=20;i++){
a[i]=(1+rand()%6);
printf("%10d",a[i]);//预留10位空间
//rand()%6称为按比例缩放scaling,6称为比例因子(scaling factor),+1是对结果进行平移
if(i%5==0)printf("\n");
}
for(i=1;i<=20;i++){
switch(a[i]){
case 1:
n[1]++;
break;
case 2:
n[2]++;
break;
case 3:
n[3]++;
break;
case 4:
n[4]++;
break;
case 5:
n[5]++;
break;
case 6:
n[6]++;
break;
default:
return 0;
}
}
for(int j=1;j<=6;j++){
printf("%d:%d\n",j,n[j]);
}
return 0;
}
4、一个函数的局部存储变量称为自动存储周期(automatic storage duration);
寄存器变量:register variable,需要频繁访问的变量。
静态变量(static variable):从程序运行时的开始时刻起有效,占用的存储单元是在程序运行的开始时刻进行分配和初始化的,而且只分配和初始化一次。
全局变量和函数名属于外部存储类extern。