pute 函数总结


总结:
函数:


1.一维整型数组 作为函数形参 
   形参: 
      int a[10],int len // int *a, int len 
   实参:
      a   len 
      len = sizeof(a)/sizeof(a[0]); //不是真正长度       

2.一维字符型数组 作为函数形参 
  形参:
     char s[10]; //操作 字符串 
  实参:
  
  //注: 
    字符串有自己结束的标志 '\0'
    字符数组 
    字符串 
   char s[10] = "hello";
   char s[10]

3.二维数组 
 
 二维整型数组 作为函数的形参 
 
 形式上:
 printArray(int a[][4],int row);
 
 形参: 数组形式,行数 
 
 实参: 数组名 ,函数 
 
 int a[3][4] ; 
 int a[][4]; //一维数组 
             //int[] a[]; //
             //
             
 printArray(int a[][4],int row);
 printArray(int[4] a[],int row);
 printArray(int[4] a[],int len);
 printArray(int[4] *a,int len); //编译器的处理 
 //
 printArray(int (*a)[4],int len)//编译器最终理解的形式
 

二维字符型数组:
char s[3][100];
做函数的形参:
   形参 
      数组形式,行数 
  实参:
      数组名, 行数 
      
    

标识符的作用域 与 可见性问题:

作用域:


    起作用的范围 
全局作用域:
    不在任何一个 {}  (花括号)范围内 
局部作用域:
    一定是某个{} (花括号)范围内

变量:


   全局变量 
   局部变量 
 

可见性问题:


   程序代码的角度去看,哪些标识符起作用 
   
  


标识符的可见性的规则:


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

空间的角度:


  全局变量 
  局部变量 
  


时间角度看:


  动态变量
     从定义处开始,到作用域结束时,释放  
     eg:
        局部变量 
  静态变量:
     从程序开始执行时,存在,到程序执行结束时,销毁
     
     eg:
       全局的变量 
       静态局部变量 (static)
       


注意:


   全局变量 初始化时 ,必须用常量
   静态局部变量(static 修饰的) 初始化时 ,必须用常量
   特点:
      1. 值 只需要初始化一次 
      2. 值 具有继承性 
      
      


变量存储类型:


栈:
   局部变量 
   特点: 自动申请,自动释放 
堆: 
   特点: 手动申请,手动释放 
全局区(静态区):
   全局变量,静态变量,放在这 
   特点:
      这块区域,是代码编译好之后就确定的。
字符串常量区: (只读)
   "hello" 
代码区:
    放代码  (只读)

程序 = 代码 + 数据 


局部变量 
静态局部变量 
全局变量 

int c=20; //全局变量 

int main()
{
    int a=10; //局部变量 
    static int b=30;//静态局部变量 
}
      
   
   
   定义变量:
   
  [存储类型] 数据类型 变量名;
   
   
   auto  //自动变量 
         //局部变量 -- 栈区 
         
   auto int a = 10;
   
   static int a = 10; //静态局部变量 --- 变量就被存储到了 静态区  --- 相当于 延长了生命周期 
   
   register int a = 10; //注册 -- 寄存器 
                        // register 表示 建议将该变量放到cpu的寄存器中 
                        
                        for (i = 0; i < 100000000; ++i)
                       //注意: register 修饰的变量 ,不能作 & 取地址运算 
   extern int a;      //多文件编程中    
                      //声明 
                      //声明变量a,是外部(别的文件)的一个变量,如果要用,请到别的文件寻找
                   
                  //static 
                  static 修饰全局变量 
                        表示,该全局变量,只能作用域当前文件 (限定作用域为当前文件)
                  static 修饰函数  
                        表示 该函数 只能作用域当前文件 (限定作用域为当前文件)
                        
                  static 避免冲突 
                  static 避免数据泄露 
    

   static 修饰 
   变量 
      局部变量 
          作用: 延长了生命周期 
      全局变量       
          作用: 限定了作用域,只能作用域当前文件 
   函数   
      作用,与修饰全局变量类似,只能作用域当前文件 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值