天天看点

Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器

当我们把hello world写完之后,我们就可以迈入c的大门了,今天就来讲讲基本的一些数据类型,函数之内的 我们先来看一张传播久远的图片‘
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
整形包括短整型、整形和长整形。
short a=1;
一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后,例如0x12345678在内存中的存储如下: 地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b 数据:  78      56        34      12 定义:用int关键字,举例如下: int a=6;
long a=10;
浮点型包括单精度型和双精度型。
浮点型,又称实型,也称单精度。一般占4个字节(32位), float a=4.5; 数据:  00      00        90      40
一般占8个字节(64位) double a=4.5; 地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b  0x0012ff7c  0x0012ff7d  0x0012ff7e  0x0012ff7f 数据:  00      00        00      00      00        00      12      40
在各种不同系统中,字符类型都占一个字节(8位)。定义如下: char c=’a’; 也可以用字符对应的ascii码赋值,如下: char c=97; 其实我们可以用一串代码来阐述上面的意思
是不是清晰明了了,然而我们也是从java走过来的,这些基本上可以一笔带过了,我们接下来看下c中的函数
这里我们温习一下上面说到的输出函数

%d - int

%ld – long int

%lld - long long

%hd – 短整型

%c - char

%f - float

%lf – double

%u – 无符号数

%x – 十六进制输出 int 或者long int 或者short int

%o - 八进制输出

%s – 字符串

int len;

scanf(“%d”,&len);

因为这个java中没有,所以这里还是要提一下的
输入函数大家也不陌生,在java中也有,java的代码一般都是这样的
这样就可以在控制台输入东西了,但是c就简单多了,上面也提到了一个函数 scanf(“%d”,&len);,我们来看看具体怎么用
这样我们来运行一下:
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
这样就ok了
内存这一块,c是可以直接去操作的,这就是他的优势,同时也是他比较难的一块了,我们要好好的磨一磨了,内存地址就是内存的地址,内存中所以数据都是通过地址拿到的,就像findviewbyid一样,我们来看个例子
我们通过这行代码来获取i的值以及i的地址,打印的结果
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
我们为了更形象的说明,打个比方,比如电脑的系统有32和64位区分,32位的系统最大支持的是4g内存,这是因为32位的系统内存总线的长度为32,也就是可以分配给内存作为地址的数字是2的32次方个
修改内存,就像打游戏一样,你的血量为100,其实就是在内存中定义一个变量,比如int blood = 100,这个blood在内存中开辟一个空间,赋值为100,然后再进行其他操作,我们写个小例子
逻辑应该看得懂吧,我们定义一个i,然后获取他的内存地址,再让他进行倒计时一样的操作,这就模拟了打游戏,比如一分钟通关之内的游戏,我们修改i的内存,达到内存修改器的效果
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
然后我们就可以下载cheat engine,这个是内存修改器,和八门神器的原理差不多
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
下载地址自己去网上找吧,具体的用法,大家可百度
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
当我们把内存冻结了之后
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
你就达到了修改游戏的效果了,永远不会到0,也就不会死了,这里也只是阐述一个原理哦!