什么是变量
变量在C语言中就是一个容器,通常是一块内存。
声明变量
变量类型 变量名;
例如:
int x;
在上面的代码里,int就是变量类型,x就是变量名。变量类型用来说明数据宽度,变量名的命名规则与函数名一致。。
变量类型 | 数据宽度 |
---|---|
int | 4个字节 |
short | 2个字节 |
char | 1个字节 |
全局变量
- 编译的时候就已经确定了内存和宽度,变量名就是内存地址的别名。
int x; //声明变量
void main() //入口
{
x = 1; //赋值
return; //程序结束
}
我们从反汇编中查看一下这个程序,从这里可以看到,全局变量它有一个独一无二的内存编号,从这里我们可以理解,什么是变量名?变量名就是内存地址的别名。
-
如果不重写编译,全局变量的内存地址不变,游戏外挂中找“基址”其实就是找全局变量。
这句话怎么理解呢,就是我们编写完程序按F7构建,现在我不按F7了,依然是刚才的程序,我直接按F5让它运行,我们看一下它内存地址的变化:
int x; //声明变量
void main() //入口
{
x = 1; //赋值
return; //程序结束
}
可以看到,内存地址没有发生变化,也就是只要不重建,内存编号就始终不会改变。
做一个小“外挂”
我们做一个小实验,假设我们在玩传奇,下面的这一段代码是我们的攻击频率与攻击力,我们怎么样来达到每刀999的效果呢?
#include <stdio.h>