一、概述
开始学习c语言征程,把学习的知识点记录下来,顺便加以回顾。
二、开发工具的介绍
开发工具使用Visual Studio
截图
Visual Studio下载
Visual Studio的安装就是按照导向一步一步的安装就行了,这里不过多的介绍了。
三、输入输出,及占位符,基本数据类型
3.1输出
#include ; 1
void main(){
printf("holle world\n"); 2
system("pause"); 3
}
1处代码,引入stdio.h文件,类似Java里面的导包
2处代码,打印输出,配合3处代码调用windows的API,等待用户输入
main函数可以有返回值。
打印结果:
3.2占位符
代码:
void main(){
int i = 30;
printf("%d\n",i); 1
short k = 8;
prinf("%d\n", k);2
sysytem("pause");
}
1,2两处都是通过占位符输出变量i和k,%d就是占位符,其他类型数据的占位符为:
long %ld
float %f
double %lf
char %c
%x 十六进制
%o 八进制
%s 字符串
这段代码的打印结果为:
3.3基本数据类型
int short long float double char
四、指针
指针是用来存储变量的内存地址的
看代码:
void main(){
int i = 90;
//指针变量,创建一个int类型的指针
int* p = &i; //p的值就是i这个变量的内存地址 1
printf("%#x\n",p); 2
float f = 89.5f;
//创建一个float类型的指针
float *fp = &f;
printf("%#x\n", fp); 4
system("pause");
}
1处代码,就是用p来存储i的指针,2和4处把变量的地址打印出来
示意图
i存储的是90,p存储的是i的内存地址,通过内存地址可以修改这个地址上的数值
代码:
void main(){
int i = 90;
//指针变量,创建一个int类型的指针
int* p = &i; //p的值就是i这个变量的内存地址
printf("%#x\n",p);
*p = 200; 1
printf("%d\n", i);
system("pause");
}
1处通过操作指针变量把i的值变为200
五、外挂原理
void main(){
int time = 600;
printf("%d\n", &time);
while (time > 0){
time--;
printf("游戏时间剩余%d秒\n", time);
Sleep(1000);
}
system("pause");
}
写一个游戏程序,时间是600秒,拿到time变量的内存地址,另外写一个外挂程序,生成dll文件,动态注入游戏程序,通过操作内存地址,修改time的值,从而延长游戏时间。
外挂程序代码:
#include
#include
__declspec(dllexport) void go(){
//修改time变量的值
int *p = 0x3bfee0;
*p = 999999;
}