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; }
-
-
-
变量的声明
-
自动识别
-
显示声明
-
推荐阅读
-
小米5标配QC3.0充电器MDY-08-EH拆解与评测:做工扎实
-
R3 1300X对比R5 1400哪个好 R3-1300X与R5-1400区别对比评测
-
css3与html5实现响应式导航菜单(导航栏)效果分享
-
Python基础一: 计算机基础,Python相关介绍,变量,常量,注释,基础数据类型(int,str,bool),用户交互input,流程控制语句if
-
对python多线程与global变量详解
-
ThinkPHP模板之变量输出、自定义函数与判断语句用法
-
Android中的全局变量与局部变量使用小结
-
Flutter使用JsBridge方式处理Webview与H5通信的方法
-
努比亚红魔5G真机官曝:“猛男粉”与“火星红”同屏合影
-
jsp中变量及方法的声明与使用