7.18 星期4
上节回顾:
while循环和do..while循环 的区别?
while循环是先判断后执行,do..while是先执行一次后判断.且do...while
至少循环一次.
break的作用:跳出switch 语句,跳出与自己最近的一次循环
continue的作用:跳出本次循环,执行下次循环.
常量区(不允许修改),栈区(一般存放局部变量),堆区(一般是手动申请,动态分配),代码区(主要用来存放代码)
常量分为:
直接常量和
命名常量(const)
使用const进行常量定义, 之后不再允许修改例
const int const = 10;
count = 20;(编译出错)
使用宏定义常量
为什么使用枚举
#include <stdio.h>
enum Weekday {
mon = 1,
tue = 2,
wed = 3,
thu,
fri,
sat,
sun,
};
int main(int argc, const char * argv[])
{
int date = 0;
printf("Please input date:");
scanf("%d",&date);
switch (date) {
case mon:
printf("%d",mon);
break;
case tue:
printf("%d",tue);
break;
case wed:
printf("%d",wed);
break;
case thu:
printf("%d",thu);
break;
case fri:
printf("%d",fri);
break;
case sat:
printf("%d",sat);
break;
case sun:
printf("%d",sun);
break;
default:
break;
}
return 0;
}
为什么使用函数
- 使用系统库函数求出数字的平方、平方根及次幂值并输出。
- 使用到的数学库函数包括:
- sqrt(x) :x的平方根
- pow(x,y):x的y次幂(平方)
- fabs(x) :x的绝对值
形式参数和实际参数
- 形式参数简称形参,用于函数声明及定义时的参数列表中,用于传递数据到函数中
- 实际参数简称实参,作为数据的载体,调用函数时用于数据传递给函数的形式参数
变量存储类型
局部变量: auto static register
auto
自动型变量,不写默认也是自动型,每次使用时被创建,出了其作用域后自动释放
static
静态型变量,定义为静态变量之后,在程序运行期间一直保持,直到程序运行结束
(
for(int i = 1 ; i<10 ; i++)
{
int nA = 1;
static int nB = 1;
nA++;
nB++;
printf("%d\t",nA);
printf("%d\n",nB);
}
)
static变量在程序你开始就运行了,运行后显示nA是不累加的nB是累加的.
register
寄存器型变量,和自动型变量具有相同的持续时间,但是被存储到了寄存器内,但是有些编译器并不支持此类型,那么就当做auto型使用(寄存器是cpu的元部件,从寄存器中取数据比从内存中取数据要快,但存储的数据有限)
全局变量: 无修饰符 static extern
在程序运行时创建一次,程序结束时销毁,允许在同项目的其他文件中使用该变量
static
程序运行时创建一次,程序结束时销毁,不允许在同项目的其他文件中进行使用
extern
扩展其他文件中的全局变量到本文件进行使用,并不创建新的变量,而是使用已有的同名变量
extern还可以用来扩展其他文件中的函数到本文件使用
如果把全局变量声明在头文件中.h 想使用的话,只需要在C源文件中引入头文件中。
如果把全局变量声明在源文件中,在其他源文件中想使用的话,必须用exuern声明一下他.
如果把全局变量加static声明下源文件中,其他源文件是使用不了的,但是头文件可以.
1