A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李艳兵 中级黑马   /  2015-8-14 21:16  /  360 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,全部变量:
   在所有函数外部定义的变量,称为全局变量
2,有什么用:
    用于存储一个需要长期存于内存,并需要改变的变量
3,怎么用:
   跟普通变量没区别,只在位置在所有函数之外
4,什么时候用
   当需要定义一个随机程序一直存于内存中,并可以被其他函数共享的变量时候
5,有什么特点
  1,生命周期跟随机程序, 程序退出才会销毁
  2,作用域是其他所在位置之下的所有函数,都可以共享并改变
  3,变量的使用遵循就近原则,如果函数内有同名变量,那么用函数自己的
  4,如果没有初始化赋值 默认值就为0
  
2.结构体:
   是一种数据类型, 是构造类型,里面可以存不同类型的数据
  1.有什么用:
    用于封装不同的数据类型到一个结构中,方便使用
  2,怎么用:
     1.定义结构体类型 struct 结构体类型{数据类型1;数据类型2;数据类型3;};
     2.定义结构体变量赋值:struct结构体类型 变量名={数据1,数据2...};
        变量名.结构体元素变量名;赋值:变量名.结构体元素变量名 = 新值;
  

     3.什么时候用:当需要把相关联的不同数据类型封装起来一起使用的时候
   3.特点:1.可以在定义结构体类型是同时定义结构体变量名,可定义匿名类型结构体
              2.同一作用域内不可重复定义结构体类型和结构变量,匿名类型结构体除外
              3.可在函数内也可在函数外,效果及用法类型与局部变量和去全部变量,也可嵌套定义
              4.可同时在函数内外定义同一个类型,使用同样遵循就近原则,结构体变量也是如此.
   
3.结构体数组:是数组,只不过是数组里面每一个元素是结构体类型
       1有什么用:用于存储多个有关联的结构体
       2.怎么用:定义及初始化赋值:struct 结构体类型 数组名[长度]={结构体1,结构体2};
          如:  struct Person{char *name;int age;};
                 struct Person{"ithema",2};        struct Person per1={"itcast",3};
                struct Person arr[2]={per,per1};
          取值:数组名[角标];单独赋值:数组名[角标]=新的结构体
         如:      struct   Person   per3  =arr[0];
             什么时候用
        当需要多个有关联的结构体,并作为一个整体使用
     特点:遵循数组的特点
4.结构体的指针
         1.是指针,指针类型是结构体类型
         2.用于存储结构体的地址,并操作地址对应的结构体空间的数据
         3.如:
                 struct Person{char *char;int age};   struct  Person  per={"ithema",2};
                 strucrt Person *p =&perl
        取值:(*指针名).结构体元素名;        指针名->结构体元素名;(结构体独有的用法)
        赋值:(*p).结构体元素名=新值;       指针名->结构体元素名=新值
                 (*p).name, (*p).age,或 p->name,  p->age;
          当需要指针操作结构体时
           指针移动对结构体本身没有意义,结构体名并不包含第一个元素的指针
5.枚举:是一种数据类型,称为枚举类型,是构造类型的一种,里面存的都是别名的整型常量
          可以把多个整型常量以别名的形式封装成一个整体,便于别的变量识别并取值使用
          定义枚举类型  enum 枚举类型{元素1,元素1,....}或{元素1=0;元素2=1}
          定义枚举变量及赋值:enum 枚举类型  变量名=对应枚举李一个元素名
          变量名=枚举元素名
        什么时候用:当一个变量只有固定的多个int取值范围时
          特点:枚举类型只能是int值,且不能直接使用int常量,需要用别名
                  如果不设定值,那么默认第一个元素是0,依次类推
                 同一个作用域内不能出现重复的元素,不同的枚举类型也不行
6  宏定义:是一个替换代码的预处理指令
              可以在编译之前进行代码替换
              开始替换:#define 被替换的内容
      如,#define Klength 6表示从这行开始下面所有代码中Klength 替换成6
          结束替换:#undef 被替换内容   如: #undef klength 表示到一行,宏定义失效
               当需要用一些重复性代码或简单函数运算时,可以用宏定义,提高效率
          特点:命名尽量以大写或小写K开头.便于区分
                  被双引号的引起来的不会被替换
                  宏定义只会做替换代码,不会关注任何逻辑,容易出现优先级错误(加括号解决)
                  替换可以设置作用域,如果不设置,作用域则是这行代码出现到代码的最后一行bi

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马