C语言笔记——32个关键字

一、auto

  在缺省的情况下,编译器默认所有的变量都是auto的。

二、register

  1、请求编译器尽可能地将变量存在CPU内部的寄存器中,而不是通过内存寻址方式,以此来提高效率。

  2、注意事项:register变量必须是一个单个的值,并且其长度应小于或等于整形的长度;而且不能用取址运算符“&”来获取register变量的地址(因为该变量可能不放在内存中)。

三、static

  1、修饰变量:

   静态全局变量:其作用域从定义之处开始,到文件结尾处结束。

   静态局部变量:由于被static修饰的变量总是存在内存的静态区,所以即使这个函数运行结束,这个静态变量的也不会被销毁,函数下次使用时仍然用这个值。

 

    最终i=10,j=1

  2、修饰函数:用来表示不能被其他文件访问的全局变量和函数。

四、基本的数据类型short、int、long、char、float、double

  在32位系统上,short的内存大小是2字节,char是1字节……可能不同的平台会有所不同,具体平台使用sizeof关键字测试。

五、sizeof

  1、sizeof是关键字不是函数,在计算变量所占空间大小时,括号可以省略,而计算类型大小时则不能省略。

  2、经典例子,32位系统 VC++6.0编译器下的结果

 


六、signed、unsigned

  1、缺省的情况下,编译器默认数据为signed

  2、经典例子

 

七、if 、else

  注意else与离他最近的那个if配对

八、switch、case

  1、case语句绝对不能忘了加break,最后必须使用default

  2、case后面只能是整型或字符型的常量,注意:不能试const修饰的变量,因为其实质为只读变量。    (在C++中对const进行了拓展,则可以使用const修饰的变量)

九、do、while、for循环

十、break、continue

  1、break终止本层循环

  2、continue终止本次(本轮)循环

十一、goto关键字——最好不用

十二、void

  1、void * 可以指向任何类型的数据,因此,任何类型的指针都可以直接给它赋值,无需进行强制类型转换。但是,void * 不可以直接赋值给其他类型的指针,需要进行强制转换。

  2、如果函数无参数,最好声明其参数为void

十三、return

  1、用来终止一个函数并返回其后面跟的值。

  2、不可返回指向“栈内存”的指针,因为该内存在函数体结束时被自动销毁。

十四、const

  1、const修饰的变量并非常量而是只读变量,所以不能使用在case语句后面。

  2、编译器通常不会为const只读变量分配内存,而是将它保存在符号表里,节省空间,同时提高了效率。

  3、修饰指针时:忽略类型名,const离谁最近就是修饰谁

     const int *p      // const修饰的是*p,即指针指向的对象不可变

     int const *p      //同上

     int * const p      //const修饰p,p不可变

     const int * const p      // 指针p和它指向的对象均不可变

十五、volatile

  1、用它修饰的变量可以被某些编译器未知的因素更改;编译器对访问该变量的代码不进行优化,从而可以提供对特殊地址的固定访问。

  2、例子解析

     int i = 10;        

     int j = i;    //编译器从内存中取出i的值赋给j,这个值并没有丢弃

     int k = i;   //在该语句编译器继续使用刚才i的值赋给k,并不需重新从内存取

 

     volatile int i = 10;        //volatile关键字告诉编译器i的值可能随时发生变化

     int j = i;               //所以每次使用它的时候都要从内存中取出i的值

     int k = i;    

  3、注意:当const与volatile同时修饰一个变量时,一般编译器会优先于const,将该变量认为是const只读变量。  

十六、extern

  extern 修饰的函数或者变量,表明变量或函数的定义在别的文件中。

十七、struct

  1、结构体所占的内存大小是其成员所占内存之和

十八、union

  1、union中所有的数据成员共用一个空间,所有的数据成员具有相同的起始地址;只配置一个足够大的空间来容纳最大长度的数据成员。

  2、大端、小端模式对union类型数据的影响

     大端模式:字数据的高字节存储在低地址中,低字节存储在高地址中

     小端模式:字数据的高字节存储在高地址中,低字节存储在低地址中

   测试系统的模式:

  

十九、enum——枚举类型

  1、enum变量类型可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依此加1;如果没有赋值,它们的值从0开始依次递增1。

  2、在32位系统中其默认类型的大小为4字节。

二十、typedef

  给一个已经存在的数据类型取一个别名,而非定义一个新的数据类型。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值