概述
今天学习了C的指针,*p的核心是取地址的值,P是地址。在C中int *p=0; int *p=NULL这两个是等价的
swap(int x,int y){ 用基础的方法,设定第三个变量来交换两个值
int temp;
temp=x;
x=y;
y=temp;
}
main(){
int a ,b;
scanf("%d,%d",&a,&b)
if(a<b){
swap(a,b);
printf("%d,%d",a,b);
}
在main函数里面打印a和b是不换数据,这个是根据形参和实参之间的关系
#include <stdio.h>
#include <Windows.h>
void main(){
int time=0;
printf("%xn",&time);
while(1){
printf("time=%dn",++time);
Sleep(1000);
}
}
1.while在这里用途,给程序一个无限循环,实现倒计时的效果
2.通过地址修改地址所在的数值
3.通过dll文件给.exe进行打针的操作
#include <stdio.h>
_declspec(dllexport) goNum(){
int *p = 0x38fcc4;
*p=4000;
}
先设定一个倒计时一个小时的程序,然后用打针程序将第二个程序植入第一个,这样就可以改变内存,改变倒计时,这也就是普通小waigua 的原理。普通单机游戏的内存数据是固定的,这就可以用这种打针程序修改自己想要的数据,已达成waigua 的效果。
int swap (int *p1,*p2){
int p;
p=*p1;
*p1=*p2;
*p2=p;
}
同一个函数里面调用互换地址是可以的,不同函数是不行的
int swap (int *p1,*p2){
int c=0;
int *p=&c; 这个地方int *p 没有赋值的情况是不能使用的,windows上面崩溃,linux是报错不能直接使用。
*p=*p1;
*p1=*p2;
*p2=*p;
}
void main(){
int a,b;
int p1=&a;
int p2=&b;
scanf("%d,%d",&a,&b)
if(a<b){
swap(p1,p2)
}
}
将地址p1,p2传进swap 函数
最后
以上就是娇气芝麻为你收集整理的C语言8.8总结的全部内容,希望文章能够帮你解决C语言8.8总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复