函数(3)-day12

1,

输入设备---CPU ---输出设备
                     |
                    V
                存储器 

总线  -- 0101 
总线的宽度         
总线  (1.数据总线 2.控制总线 3.地址总线) 

2,

二维字符型数组做函数形参:
char s[3][10] = {"hello","world","china"};

形式上:
void printStr(char s[][10],int row) //注意需要传行数,因为操作多个字符串

本质上:
void printStr(char (*s)[10],int row) 
 
实参:
printStr(s,row); //数组名 行数

3,

标识符 作用域 和 可见性问题 

作用域:作用的范围     
    局部变量 --- 一定在某一个{} 范围内
    全局变量 --- 不在任何一个{} 范围内
可见性:程序运行到某个点,哪些标识符可见

标识符的可见性的规则:
1.先定义,后使用 
2.同一作用域中,不能有同名标识符
3.在不同的作用域,同名标识符,相互之间没有影响 
4.如果是不同的作用域,但是作用域之间存在嵌套关系,
 则内层的作用域的同名标识符,会屏蔽外层的作用域的同名标识符。
(就近原则) 


时间上去区分:
   动态变量(局部变量-空间是开辟在栈上的--自动申请自动释放)

(声明周期):
     从定义的语句开始,到所在的作用域范围结束 
    

eg:
        栈上的 局部变量 
   静态变量 (全局变量)
     从程序一开始运行,就存在,
     直到程序结束时,销毁 
     
eg:
        全局变量 
        static 局部变量 
     注意:
       全局变量(静态变量) --- 此时,
      

1)不能用变量进行初始化,只能常量初始化 

2)静态区的变量 
      只会被初始化一次 

3)值具有 继承性

4,

auto 
auto int a; ---这个是一个自动变量 --- 栈上开辟的变量 
  static int a; --静态区 修饰的是 局部变量 
  register int a; --CPU 寄存器  建议性 

extern int a;  扩展 延伸 
                 表示 此时这个a 不是在当前文件中定义的 ,
                 如果要用,请到别的文件中寻找
                 多文件编程                  

一般使用在多文件编程中:
                 如果想在当前文件使用别的文件中的 全局变量 ,                

此时,可以使用
                 extern int a; 做声明,相当于,把别的文件中的变量作用域扩展到当前文件

全局变量前面 
  static 修饰局部变量
           将局部变量 存储在了 全局区(静态区)
           将局部变量的生命周期延长 
  static 修饰全局变量
           表示 将全局变量 的作用域限定到本文件中 
           别的文件中不能extern了     
  extern 可以放在函数声明中  --函数声明 
             表示的意思 --将函数作用域扩展到当前文件
  static 加在函数前面 
           此时效果与修饰全局变量效果一样 
           将函数作用域限定到本文件中

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值