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


当我们把Hello World写完之后,我们就可以迈入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;

地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b

数据:  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;

其实我们可以用一串代码来阐述上面的意思

#include <stdio.h>
#include <stdlib.h>   main(){ //基本数据类型:char int float long short double signed unsignedint i = 3;char a = 'c';//int的格式说明符 %d printf("i的值为%d",i);//char的格式说明符printf ("a的值为%c",a);system("pasue");//通用输出system("通用输出%d",sizeof(short));// char int float long shortd的用法和JAVA类似 //我们提一下signed unsigned //signed:有符号  unsigned 无符号 //举个例子signed int i = 3;  //分正负 unsigned int i2 = 3;   //不分正负 //字节长度char 1 int 4 float 4 long 4 short 2 double 8}

是不是清晰明了了,然而我们也是从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中没有,所以这里还是要提一下的

 //C的数组[]要写在后面 ,而且这个 数组的长度为 8,因为他有一个结束符 \0
char str [] = {'a','n','d','r','o','i','d',};
char str [] = "可以输入";   //9个字节长度

三.输入函数

输入函数大家也不陌生,在JAVA中也有,JAVA的代码一般都是这样的

import java.io.*;
public class Test1 {/*** @param args* @throws IOException */
public static void main(String[] args) throws IOException {BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));String str = stdin.readLine();System.out.println(str);
}
}

这样就可以在控制台输入东西了,但是C就简单多了,上面也提到了一个函数 scanf(“%d”,&len);,我们来看看具体怎么用

#include <stdio.h>
#include <stdlib.h>
//输入函数
main(){             printf("请输入你的年龄:"); //定义一个变量 int age ;//设置输入的类型为int  scanf("%d",&age);printf("你的年龄为:%d\n",age);system("pause"); }

这样我们来运行一下:

这样就OK了

四.内存地址

内存这一块,C是可以直接去操作的,这就是他的优势,同时也是他比较难的一块了,我们要好好的磨一磨了,内存地址就是内存的地址,内存中所以数据都是通过地址拿到的,就像findviewbyid一样,我们来看个例子

#include <stdio.h>
#include <stdlib.h>   main(){ int i ;  //当i声明的时候,内存中开辟一个空间,四个字节,无值,分配一个地址 i = 5;  //给地址一个值printf("%d\n",i); //当我们要输出这个i的时候其实是通过地址拿到这个5的//获取内存地址        printf("%#x",&i);//让窗口停留 int age ; scanf("%d",&age);
}

我们通过这行代码来获取i的值以及i的地址,打印的结果

我们为了更形象的说明,打个比方,比如电脑的系统有32和64位区分,32位的系统最大支持的是4G内存,这是因为32位的系统内存总线的长度为32,也就是可以分配给内存作为地址的数字是2的32次方个

五.内存修改器

修改内存,就像打游戏一样,你的血量为100,其实就是在内存中定义一个变量,比如int blood = 100,这个blood在内存中开辟一个空间,赋值为100,然后再进行其他操作,我们写个小例子

#include <stdio.h>
#include <stdlib.h>   main(){     //时间为60s过关       int time = 60;int i ;//打印i的地址printf("%#x\n",&i); for(i = time;i>=0;i--){printf("剩余时间为%d\n",i);//睡眠,达到递减的效果 sleep(1000); }//让窗口停留 int age ; scanf("%d",&age);}

逻辑应该看得懂吧,我们定义一个i,然后获取他的内存地址,再让他进行倒计时一样的操作,这就模拟了打游戏,比如一分钟通关之内的游戏,我们修改i的内存,达到内存修改器的效果

然后我们就可以下载Cheat Engine,这个是内存修改器,和八门神器的原理差不多

下载地址自己去网上找吧,具体的用法,大家可百度

当我们把内存冻结了之后

你就达到了修改游戏的效果了,永远不会到0,也就不会死了,这里也只是阐述一个原理哦!

似乎节奏越来越快了,下节我们学习下指针,这样就会对C有一个清晰的认识了,早点把这块学完,对自己也是有莫大的好处的!

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

  1. C语言中的数据类型及相关数据操作

    一.数据类型 1.1 基本类型 char .short .int.long.float.double 1.2 构造类型 概念:由若干个相同或不同类型数据构成的集合,这种数据类型被称为构造类型 如:数组 ...

  2. C语言初阶-C语言中的数据类型以及变量的作用域和生命周期,常量的类型

    看之前记得先点赞收藏呦!谢谢大家的支持! 目录 一.c语言中的数据类型 注意:这里的long型的定义是>=int所占字节数,所以占4个是没有问题的 二.变量和常量 1.变量的类型 2.变量的作用 ...

  3. C语言 中的 数据类型 超详解

    C语言 中的 数据类型 超详解 一.整型(int.short.long.long long) 1.有符号整型 有符号整型的数据类型通常包括 int.short.long.long long 四种,因为 ...

  4. C语言中的数据类型及其转换详解

    http://www.cnblogs.com/jpcflyer/archive/2012/02/16/2353447.html 1. C语言中的数据类型 C语言中的类型按其组成可以分为简单类型和构造类 ...

  5. 软硬件学习记录5—— Verilog语言中的数据类型

    Verilog语言中的数据类型 在 Verilog 语言中,主要有三大类数据类型:寄存器数据类型.线网数据类型和参数数据类型. 1.寄存器类型 reg 1.1 概述: 寄存器数据类型的关键字是 reg ...

  6. c语言中字母大写转小写,C语言中字母大小写转换的简单操作

    大写字母要转换小写字母,要怎么操作呢?而在C语言开发中,我们经常会遇到这样或者那样的问题,别着急,爱站技术频道为你细细道来C语言中字母大小写转换的简单操作. C语言tolower()函数:将大写字母转 ...

  7. 【R语言中如何去除替换NA相关操作】

    R语言中如何去除替换NA相关操作 1.去除矩阵所有含NA的行 2.去除矩阵特定列中含NA的行 3.替换矩阵中的NA值为0 4.将矩阵中某一列的特殊值替换为NA 1.去除矩阵所有含NA的行 data=n ...

  8. c语言各种数据类型长度,C语言中各种数据类型长度

    C语言中各种数据类型长度 C语言的基本数据类型有以下几个: int整型 char字符型 float单精度浮点型 double双精度浮点型 另外,在基本数据类型基础上附加一些限定词,得到扩充的数据类型. ...

  9. c语言程序设计中数据类型有哪些,c语言中基本数据类型有哪些

    c语言中基本数据类型有哪些 发布时间:2020-08-18 11:12:49 来源:亿速云 阅读:135 作者:小新 小编给大家分享一下c语言中基本数据类型有哪些,相信大部分人都还不怎么了解,因此分享 ...

最新文章

  1. 深度探索C++ 对象模型(1)-三种对象模型的设计
  2. python-tkinter模块图形分布移动(可键盘操作)
  3. WPS菜单栏自动隐藏的解决方法
  4. Elasticsearch 集群平衡配置
  5. 10.10SSD安装盘clover 下开启trim功能
  6. 0603 0402 0805 电阻封装寸尺
  7. kibana设置中文
  8. 手机摇一摇功能音量大小跟系统音量一致
  9. ❤️不一样的测试之旅:医疗行业软件测试有什么不一样?❤️
  10. bzoj 3609: [Heoi2014]人人尽说江南好(博弈)
  11. 分享一款TF/SD卡手机存储卡格式化修复工具
  12. 朴素贝叶斯分类器常用的三种条件概率模型:伯努利、多项式、高斯模型
  13. 使用python暴力破解压缩包密码winrar解压密码破解源代码
  14. 树莓派4B设置USB启动
  15. 工程思维:把每件事都当作一个项目来推进
  16. 【三色N95pro显示器驱动板烧录-维修小记】
  17. BigDecimal取余运算
  18. FIIDO 王志凯:共享单车走到了尽头?电动自行车这才开始!
  19. [POI2005][luogu3462] SZA-Template [fail树]
  20. 【JokerのLabView】程序结构。

热门文章

  1. 数学建模——第八章概率模型
  2. DCIM 系统是如何智能改善数据中心主机管理的
  3. Python学习笔记---day07数据类型(下)
  4. C++核心准则SL.con.4:不要对不能直接拷贝的参数使用memset或memcpy
  5. LCD段码显示屏常见故障问题总结
  6. OMRON plc连接电脑
  7. PHPDoc/PHPDocumentor生成API文档
  8. java 鼠标拖拽事件_Java实现鼠标拖拽移动界面组件
  9. Word处理控件Aspose.Words功能演示:在 Java 中将 DOCX 转换为 JSON
  10. 如何计算:结构体内存的大小(在结构体的考察中占据非常重要的地位)