5 常量与变量

5.1 标识符

  • 以字母、数字、下划线组成,但是不能以数字开头;

  • 英文字母的大小写代表着不同的标识符;

  • 标识符不能是关键字。

  • 其他规则:

    • 常量命名统一为大写格式。 #define AGE 20

    • 成员变量均以m_开始。 int m_Age

    • 普通变量,取与实际意义相关的名称,在前面添加类型的首字母,并且名称的首字母要大写。 int iNum.

    • 指针标识符前添加p,且名称字母要大写。 int *pAge

    • 在函数命名时,函数名的首字母要大写。 int AddTwoNum(int num1,int num2);

5.2 常量

  • 在程序运行过程中,其值不能被修改

    • 自动识别:变量定义在使用之前

    • 显示声明:

      extern int a;
      void test01(){}
      int a = 10;
      

5.3 变量

定义:让变量存在,系统会根据变量类型给变量开辟空间。类型名 + 变量名

声明:只是告诉编译器该变量已经存在,此处通过编译,不会开辟空间。

使用:对变量的读(取值)/写(赋值)操作,操作变量名所代表的空间内容。

变量名的本质是空间内容的别名,对变量名的操作实际就是对其所对应的空间内容的操作。

变量在编译时为其分配相应的内存空间。

  • 全局变量

    • 普通全局变量

      • 定义形式:在main函数外定义的变量就是普通全局变量;

      • 作用范围:当前源文件以及其他源文件(加extern修饰);

      • 生命周期:整个进程;

      • 存储空间:全局区;

      • 注意事项:普通全局变量不初始化内容为0;

      • extern:外部链接属性

      // test01.c
      #pragma once
      extern int a = 30;
      
      int test()
      {
          return 0;
      }
      
      // test02.c
      #pragma once
      #include <stdio.h>
      #include <stdlib.h>
      
      int a;
      
      int main()
      {
          printf("%d
      ", a);
      
          system("pause");
          return 0;
      }
      
    • 静态全局变量

      • 定义形式:函数外定义且static修饰的就是静态变量;

      • 作用范围:只能在当前源文件有效;

      • 生命周期:整个进程;

      • 存储空间:全局区;

      • 注意事项:静态全局变量不初始化内容为0

      • static:内部链接属性

  • 局部变量

    • 普通局部变量

      • 定义形式:在{}里面定义的变量就是局部变量;

      • 作用范围:离它最近的{}之间;

      • 生命周期:离它最近的{}结束,局部变量就被释放;

      • 存储空间:栈区;

      • 注意事项:局部变量不初始化,内容随机

    • 静态局部变量

      • 定义形式:在{}里面定义且static修饰;

      • 作用范围:离它最近的{}之间;

      • 生命周期:整个进程;

      • 存储空间:全局区;

      • 注意事项:静态局部变量,如果初始化语句执行多次,只有第一次有效

        void test06()
        {
        	static int num = 10;
        	num++;
        	printf("num=%d
        ", num);
        
        }
        int main(int argc, char *argv[])
        {
        	test06();    //11
        	test06();    //12
        	test06();    //13
        	test06();    //14
        	system("pause");
        	return 0;
        }
        
  • 变量的声明

    • 自动识别

    • 显示声明

原文地址:https://www.cnblogs.com/chungeyuan/p/12753704.html