变量
变量的概念及本质:
变量命名规则:
标示符:
1、程序中用于标识常量、变量、函数的字符序列。
2、只能由字母、数字、下划线组成
3、第一个字母必须是字母或下划线,大小写有区别,不能使用C语言的关键字。
4、如果变量不初始化,就会默认读取垃圾数据, 有些垃圾数据会导致程序崩溃。
变量的本质:一段连续内存空间的别名
-
程序通过变量来申请和命名内存空间 int a = 0;(变量名a在代码区,是0这个四字节内存空间的别名)
-
通过变量访问内存空间
修改变量的三种方法
-
直接修改:int a =10; a=20;
-
间接修改:内存有地址编号,拿到地址编号也可以修改内存;
外挂原理就是通过变量内存地址修改变量值
&a=1245024;
*((int *)(1245024)) = 10;
-
C++中引用
数据类型和变量的关系
C语言规定:通过数据类型来定义一个变量
注意:数据类型的本质和变量的本质区别
数据类型的本质是固定内存空间的别名(相当于声明一样)
变量的本质是一段连续内存空间的别名(这个相当于定义一个实实在在的内存空间)
声明变量的意义
C语言为什么要规定先声明变量呢?为什么要指定变量的名字和对应的数据类型呢?
(1)建立变量符号表。
通过声明变量,编译器可以建立变量符号表,如此一来,程序中用到了多少变量,每个变量的类型是什么,编译器非常清楚,是否使用了没有声明的变量,编译器在编译期间就可以发现。从而帮助了程序员远离由于疏忽而将变量名写错的情况。
(2)变量的数据类型指示系统分配多少内存空间。
(3)变量的数据类型指示了系统如何解释存储空间中的值。
同样的数值,不同的类型将有不同的解释。int占据4个字节,float也占据4个字节,在内存中同样也是存储的二进制数,并且这个二进制数也没有标志区分当前是int型还是float型。如何区分?就是通过变量的数据类型来区分。由于声明建立了变量符号表,所以系统知道变量该如何解释。
(4)变量的数据类型确定了该变量的取值范围
例如短整型数据取值-32767~32767之间。
(5)不同的数据类型有不同的操作
如整数可以求余。C语言用符号”%”表示求余。整数可以,实数不可