自学嵌入式第十一天:函数的参数

一维字符型数组做函数参数
1、一维字符型数组————用来存放字符串
因为处理的事字符串数据 字符串操作的依据是\0
    实参 数组名
    形参 数组形式
    
    
    二维 整型 数组做函数参数
            形参:二维数组名 加行数
            实参:数组名 加行数
            
    二维 字符 数组做函数参数
    形参   --- 二维数组形式 + 行数    //本质 一维数组 + 长度
    实参   --- 数组名       + 行数    //
   
   注意:
      1.不要和一维字符型数组传参搞混 
        一维字符型数组,主要用来存放 字符串数据 
        而字符串数据有结束标志('\0'),故,传参时,不需要传长度 
      2.二维字符型数组,用来存储多个字符串
       要操作时,往往都是操作多个字符串,而多个字符串没有所谓结束的标志。
       看的是数组长度(行数)
    
    
    
    总:
1.一维整型数组 做函数参数
   形参 --- 数组形式 + 数组长度 
   实参 --- 数组名   + 数组长度    
2.一维字符型数组 做函数参数
   形参 --- 数组形式  
   实参 --- 数组名   
   原型: 一维字符型数组 主要用来存储字符串数据 
3.二维整型数组 做函数参数
   形参 --- 数组形式 + 行数 //本质 就是一维数组的长度 
   实参 --- 数组名   + 行数 
4.二维字符型数组 做函数参数
   形参 --- 数组形式 + 行数 //本质 就是一维数组的长度 
   实参 --- 数组名   + 行数   
    
    
标识符 的 作用域 与 可见性问题:

作用域
      名字 作用的访问 
可见性 
      程序运行到某一个位置 哪些名字可以被使用(被看见)
      

作用域:
   局部作用域 
        { 
        }  //花括号范围内 就叫局部作用域 
        
        在局部作用域 定义的变量 --- 局部变量 
        在全局作用域 定义的变量 --- 全局变量 
   全局作用域 
       不在 任何一个 {} 范围之内 
       
标识符的可见性的规则:
1.先定义,后使用 
2.同一作用域中,不能有同名标识符
3.在不同的作用域,同名标识符,相互之间没有影响 
4.如果是不同的作用域,但是作用域之间存在嵌套关系,
 则,
 内层的作用域的同名标识符,会屏蔽外层的作用域的同名标识符。
 (就近原则) 

C语言的程序5个区


堆                       [数据区]
字符串常量区 
全局区(静态区)
--------------------------------------
代码区                   [代码区]

 
 
局部变量
   特点:
       局部变量 空间 一般都开栈上 
       如果不初始化,局部变量中的值是随机值(垃圾值)
全局变量
   特点:
       全局变量 空间  全局区
       如果不初始化,默认初始化为0
       

时间角度
   生命周期

   int a; //什么a的空间被开辟,什么时候a的空间被销毁 
   
   局部变量的生命周期 
      从程序运行到定义处开始存在,到程序运行到 它作用范围结束 时 销毁
   全局变量(静态变量)的生命周期
      从程序开始运行时就存在了,直到整个程序运行结束时,销毁 
      注意:
          全局变量和静态变量,不能用"变量"进行初始化

   
存储类别的关键字:
auto         //表示它是一个自动变量 (局部变量)  ---  自动申请 自动释放 
static        //static 修饰局部变量  此时 会被放在 全局区(静态区)
                // 此时 局部变量的生命周期被延长 
                // 注意:
                //1.static 修饰局部变量 --只会被初始化一次 
                //2.static 修饰的变量 -- 具有继承性
                //3.static 修饰的变量 -- 只能用常量初始化 (不能用变量初始化)                
register    // 寄存器  
                // 表示,把变量 存储 寄存器中 
                
                
                for (i = 0; i < 1亿; ++i)
                {
                    
                }
                
                //建议性 
                
                //register 修饰的变量 ,不能 做 & //(取地址)
extern      //外部的  ---表示你的变量 是存在外部的   //多文件编程 
                //不在当前文件中 
                //只能 声明 全局变量 
                
                //static 修饰全局变量 
                //表示限定全局变量的作用域位本文件,别的文件不能通过extern来声明使用 
                //用途: 保护私有数据 
                //防止被引用 
                
                修饰函数 //声明函数 在别处的定义的 
                static 修饰函数作用和修饰全局变量作用相同
                限定作用域为本文件,别的文件不能通过extern来声明使用 
                
                
                
static  
           变量 
                局部变量 
                   表示将局部变量存放到静态区。
                   延长声明周期。
                   存在静态区的变量
                   a.不能用变量初始化 
                   b.只会被初始化一次 
                   c.反复使用该变量时,值具有继承性。
                全局变量   
                   限定作用域为本文件,别的文件不能通过extern来声明使用函数     
                   限定作用域为本文件,别的文件不能通过extern来声明使用            

 [存储类别] 类型 变量名;  
    
    
    
    
标识符 的 作用域 与 可见性

作用域    名字作用范围
可见性    程序运行到某一位置 那些名字可以被使用 (被看见)

作用域:
    局部作用域
    {
    }

花括号内 就是局部作用域
    
    全局作用域
    不在任一花括号内

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值