C语言学习笔记 - 变量、常量和存储类

变量

  • 在C中,变量的名称是由字母、数字和下划线字符组成。它必须以字母或下划线开头,并且C中变量是区分字母大小的
  • 在C中除了可以定义char int float double void基本变量类型,还可以定义枚举、指针、数组、结构体、共用体等类型。
  • 在C中定义并初始化变量:

    char c = 'c';
    int i = 0;
    float f = 1.2f;
    double d = 3.1312
  • C中声明变量有两种情况:

    • 一种建立需要存储空间。
    • 另一种则不需要,通过extern关键字声明变量而不定义它。

      extern int i; //只是声明变量,而不定义
      int i; //既是声明, 也是定义

常量

  • 常量是固定值,在程序执行期间不会改变。
  • 整数常量可以是十进制、八进制或十六进制的常量,例如12 0123 0x4b
  • 浮点常量是由整数、小数点、小数部分和指数部分组成,例如3.1415
  • 字符常量是括在单引号中,例如'c'
  • 字符串常量是括在双引号中,是由字符常量组成的,例如'abc' 'hello'
  • 定义常量有两种方式,一种使用#define预处理器,另一种使用const关键字。

    #include 
    #define LENGTH 10   //预处理
    int main()
    {
        const int i = 10; //const关键字
       return 0;
    }
    

    #defineconst都能实现定义常量的功能,但是它们都不会分配内存,const只是将一个变量所占的内存置为只可读的状态。

存储类

C中可用的储存类:auto register static extern

  • auto 储存类是所有局部变量的默认储存类, 限定变量只能在函数内部使用。

    {
        int total;
        auto int total
    }
    
  • register 储存类代表了寄存器变量,不在内存中使用。

    {
        register count;
    }
    
  • static 储存类是全局变量的默认存储类,表示变量在程序生命周期内可见。

    #include
    void func(void);
    static int count = 10; //全局变量,static是默认的
    int main() {
        while(count--) {
            func();
        }
        return 0;
    }   
    void func() {
       /* 'temp' 是 'func' 的局部变量 - 只初始化一次
        * 每次调用函数 'func' 'temp' 值不会被重置。
        */                
       static int temp =5;
       temp ++;
        printf(" temp 为 %d , count 为 %d\n", temp, count);
    }
    
  • extern 储存类表示全局变量,即对程序内所有文件可见,类似于java中的public

        文件一:
        #include 
        int count ;
        extern void write_extern();
    
        int main()
        {
           count = 5;
           write_extern();
        }
    
        文件二:
        #include 
        extern int count;
    
        void write_extern(void)
        {
           printf("count is %d\n", count);
        }
    

你可能感兴趣的:(C)