
知识回顾1.向函数传数组2.向函数传字符串3.指针型函数4.函数指针5.作用域
知 识 回 顾 1.向函数传数组 2.向函数传字符串 3.指针型函数 4.函数指针 5.作用域

问题引出o1.不同函数的代码具有不同的作用范围2.不同函数中的变量具有不同的可见性和生命期3.程序员可以通过指定变量的存储类型来改变生命期以上问题是今天要研究的第一个主题:变量的存储类型4.任何函数都可以接收外部数据5.main函数也可以接收外部数据这是今天要研究的第二个主题:命令行参数
问 题 引 出 1.不同函数的代码具有不同的作用范围 2.不同函数中的变量具有不同的可见性和生命期 3.程序员可以通过指定变量的存储类型来改变生命期 以上问题是今天要研究的第一个主题:变量的存储类型 4.任何函数都可以接收外部数据 5.main函数也可以接收外部数据 这是今天要研究的第二个主题:命令行参数

主要内容888888888Boto8.11.变量的存储类型8.12命令行参数8.13递归小结目的要求复习思考题上机与编程实践独立作业
主 要 内 容 8.11 变量的存储类型 8.12 命令行参数 目的要求 复习思考题 上机与编程实践 独立作业 小 结 8.13 递归

变量的存储类型8.11aoa1.变量的存储类型1)四种存储类型staticautoregisterextern(2)说明不同类型的量作用域和生命期不一样(3)声明存储类型标识符数据类型标识符变量名:/定义了一个存储类型为auto的整型变量x*/int x;auto/*定义了一个存储类型为static的浮点型变量y*/static float y;
8.11 变量的存储类型 (1)四种存储类型 (2)说明 1.变量的存储类型 不同类型的量作用域和生命期不一样 auto static register extern (3)声明 存储类型标识符 数据类型标识符 变量名;

2.auto型变量(1)在函数内部定义的非static型的变量,也叫局部变量(2)函数的形参也属于该类型(3)auto型变量的作用范围是它们所在的语句块(4)auto型变量的生命期是语句块的执行时间(5)若未对其初始化,则值不确定
2.auto型变量 (1)在函数内部定义的非static型的变量,也叫局部变量 (2)函数的形参也属于该类型 (3)auto型变量的作用范围是它们所在的语句块 (4)auto型变量的生命期是语句块的执行时间 (5)若未对其初始化,则值不确定

a和b伴随语句块执行的开始而产生intmain(void)1a和b的生命a和b的可见性inta=10:缺省了auto是允许的中期是它们所是它们所在的auto intb=-l:在语句快的语句块...执行时间/*main*/a和b伴随语句块执行的结束而消失图8-15auto型变量现场编程
图8-15 auto型变量 现场编程

3.static型变量(1)使用static关键字定义的变量,也叫静态变量(2)在函数内的叫局部静态变量,在全局区的叫全局静态变量全局和局部静态变量的比较项目局部静态变量全局静态变量产生时机编译时产生,同时初始化作用域全程所在的语句块声明期整个程序的执行时间
3.static型变量 (1)使用static关键字定义的变量,也叫静态变量 (2)在函数内的叫局部静态变量,在全局区的叫全局静态变量 项目 局部静态变量 全局静态变量 产生时机 编译时产生,同时初始化 作用域 所在的语句块 全程 声明期 整个程序的执行时间 全局和局部静态变量的比较

4.extern型变量(1)在函数外未使用static关键字定义的变量(2)在编译时为其分配存储空间(3)作用域是定义后的整个程序,生命期是整个程序运行时间(4)可以通过声明改变其作用域数据类型标识符变量名:extern
4.extern型变量 (1)在函数外未使用static关键字定义的变量 (2)在编译时为其分配存储空间 (3)作用域是定义后的整个程序,生命期是整个程序运行时间 (4)可以通过声明改变其作用域 extern 数据类型标识符 变量名;

*二个普通程序结构*#include...a的作用域inta;外部交量在全局区*b的作用域发生intmain(void)了改变1 /*main*/externintb:/声期语句*intb:外部变量在程序中间*图8-19外部变量的声明现场编程
现场编程 图8-19 外部变量的声明

8.12命令行参数..1.main函数由os调用2.main函数也可以带参数净main明数不带参数*/*main两数带参数*int mainf voidintmaintintargc福char*argvl1)*局部声明*/*局部声明*/*执行语句*/++执行语句*-1 /main*/1/*main*/argc存储用户输入参数的个数argv存储了参数的地址现场编程
8.12 命令行参数 2.main函数也可以带参数 1.main函数由os调用 ◆argc存储用户输入参数的个数 ◆argv[]存储了参数的地址 现场编程