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\n", a); system("pause"); return 0; }
-
-
静态全局变量
-
定义形式:函数外定义且static修饰的就是静态变量;
-
作用范围:只能在当前源文件有效;
-
生命周期:整个进程;
-
存储空间:全局区;
-
注意事项:静态全局变量不初始化内容为0
-
static:内部链接属性
-
-
-
局部变量
-
普通局部变量
-
定义形式:在{}里面定义的变量就是局部变量;
-
作用范围:离它最近的{}之间;
-
生命周期:离它最近的{}结束,局部变量就被释放;
-
存储空间:栈区;
-
注意事项:局部变量不初始化,内容随机
-
-
静态局部变量
-
定义形式:在{}里面定义且static修饰;
-
作用范围:离它最近的{}之间;
-
生命周期:整个进程;
-
存储空间:全局区;
-
注意事项:静态局部变量,如果初始化语句执行多次,只有第一次有效
void test06() { static int num = 10; num++; printf("num=%d\n", num); } int main(int argc, char *argv[]) { test06(); //11 test06(); //12 test06(); //13 test06(); //14 system("pause"); return 0; }
-
-
-
变量的声明
-
自动识别
-
显示声明
-
上一篇: HTML设置div水平居中的方式
下一篇: 你家几亩田啊