随记(2)



     

一、static:变量空间独立与函数中的auto变量或者栈变量,static变量空间在内存中的静态区内分配。

1.修饰局部变量:

     一般情况下,局部变量是存放在栈区的,并且局部变量的生命周期在该语句执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束为止。

     注意:其作用域没有改变,仍然是一个局部变量。

2.修饰全局变量:

     对于一个全局变量,它既可以在本源文件中被访问,也可以在同一个工程的其他源文件中被访问,(只需用extern进行声明即可).

3.修饰函数:

      与修饰全局变量大同小异,就是改变了函数的作用域。

.extern

当我们在本文件里试图用一个外部声明的全局变量或函数时,可以在其前面加上extern,表示它是外来的。

1.extern变量名

      在任何函数体外声明和定义变量时,如果有extern肯定是声明.

2.extern函数

      再用extern声明变量时,可以不指定类型。

.const(只要一个变量前面用const来修饰,就意味着该变量里的数据可以被访问,不能被修改。)

     解除const的迷惑性:

       1.将类型去掉

       2.const秋是谁,谁就拥有了铁布衫,谁的值就是不能修改的.

.auto:当前变量的作用域为当前函数和代码段的局部变量,意味着当前变量会在内存栈上进行分配。

:先进后出。

注意:有的编译器为了提高效率,在出栈时不会进行数据清空,也就是下个函数里的变量在入栈使用该空间时,里面的数据是上一次变量操作的结果。

.register(闪电飞刀)

   1.作用:

         如果一个变量被register来修饰,就意味着该变量会作为一个寄存器变量,让该变量的访问速度达到最快。

2.寄存器变量:一个变量直接引用寄存器,也就是对变量名的操作的结果是直接对寄存器进行访问。

 在使用寄存器变量时,应注意:

  a:待声明为寄存器变量类型应该是CPU寄存器所能接受的类型,意味着寄存器变量是单个变量,变量长度应该小于等于寄存器长度。

  b:不能对寄存器变量使用取地址符,因为该变量没有内存地址。

  c:尽量在大量频繁操作时使用寄存器变量,且声明的变量个数应该尽量少。

.volatile

它修饰的变量表示该变量的值很容易由于外部因素发生改变。这就要求编译器要在每次对变量进行访问时去内存里读取,从而保证数据的一致.

.typedef#define

#define只是简单的文本替换(有括号是加括号,无括号时就没有括号)

typedef作用范围限制在所定义的函数或者文件内。(取决于此变量定义的位置。)

八、联合体

      结构体与联合体本质不同:在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和,而在联合中各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度(同样遵循对齐)

      联合体格式:union  联合名

                 {

                  成员表

                  };

      成员表中含有若干成员,成员的一般形式为:

                     类型说明符    成员名


九、运算符(自己需要记的)

  1.三目运算符:表达式1? 表达式2:表达式3

       解释:表达式1为真执行表达式2,否则执行表达式3

  2.++和--

      ++a//先进行加1,后进行操作

   a++//先进行操作,后加1

  3.左移与右移

     左移:是把“<<”右边的数指定移动位数,高位丢弃,低位补0

     右移:是把“>>”左边的运算数的各二进制位全部右移若干位,“>>”右边的数指定移动的位数。(有符号数:符号位跟随移动,当为正数时,最高位补0;为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定)

  



 

 

     

 

     

 

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值