JNI - C基础1

JNI 基础回顾(占位符,sizeof,for循环,指针)

占位符

1
printf("%s\n","Hello Rocka");

占位符以及占位符意义:

符号 占位符
%d 十进制整数占位符
%c 字符占位符
%i 十进制、八进制、十六进制整数占位符
%p 地址占位符(指针占位符)
%f(.2f) 浮点类型占位符(小数点后.2f)
%x(X) 十六进制整数占位符
%s 字符串占位符
%o 八进制整数占位符

sizeof

1
printf("int类型所占%d字节数\n" , sizeof(int));

for循环

Windows得写法如果不标准不一定能在Linux下使用,例如下面两个:

1
2
3
4
5
6
7
8
9
10
//写法1:
for(int i = 0 ; i < 5 ; i++){
printf("%d\n", i);
}

//写法2:
int i =0;
for(;i < 5; i++){
printf("%d\n", i);
}

输入输出

主要用scanf

1
2
3
4
int a;
printf("请输入一个整数:");
scanf("%d",&a);
printf("i的值为:%d\n",a);

指针

指针存储的是变量的内存地址),内存地址(系统给数据分配的门牌号)

定义:
在计算机中,所有的数据都是存放在内存中的,一般把内存中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不一样,如int占用4个字节,char占用1个字节。为了正确地访问这些内存单元,必须为每个内存单元编上号。每个内存单元的编号是唯一的,根据编号可以准确地找到该内存单元。

内存单元的编号叫做地址(Address),也称为指针(Pointer)。

指针示例1:

1
2
3
4
5
int b = 30;
int* p = &b;//创建一个int类型的指针,并且给他赋值,p的值就是b这个变量的内存地址
printf("%#x\n",p);

-->0xefa7780c

指针示例2:

间接赋值。变量名,对内存空间上的一段数据的抽象.

1
2
3
4
5
6
7
8
9
10
11
int c = 40;
int *point = &c;
printf("修改前%d\n" , c);
*point = 200;
printf("修改后%d\n" , c);
change(&c);
printf("再次修改后%d\n" , c);

-->修改前40
-->修改后200
-->再次修改后150

指针其他

  1. 外挂:通过动态链接库注入的方式来修改内存地址来修改内存地址对应的变量,像以前的金山游侠修改器一样。

  2. 指针有类型,地址没有类型,地址只是内存开始的位置,类型是读取到什么位置结束。比如int读取四个字节,double读取八个字节

  3. 空指针的默认值为0

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器