50安卓JNI

JNI(java native interface)

java本地接口

是java和c/c++之间进行连接的桥梁,使两者可以相互调用

需要用到NDK(native Develop kits)本地开发工具集


NDK可以把c/c++编译成一个Linux下可以执行的二进制文件

java代码里面就可以通过jni调用执行二进制的文件


java数据类型和长度:int4个字节           double8个字节       float4个字节       long8个字节

                                      short2个字节        Boolean1个字节     char2个字节         byte1个字节


c语言中数据类型比java少一些,在c语言中没有boolean类型的数据 ,int1代表真,0代表假

没有String类型的数据,通过char类型的数组表示字符串

没有byte类型,所以用char的类型表示byte类型


sizeof();  c语言的一个函数,可以把某种数据类型的长度获取出来

signed ,unsigned数据类型的修饰符

signed int;代表有符号的int的数据

unsigned int;代表无符号的int的数据


符号的修饰符只能修饰整数类型的数据long    int,

不能修饰浮点型的数据float,double,

用不同的占位符修饰不同的类型

char c[20];//定义一个数组

scanf("%s",c)  //从键盘接受一个字符串,放在c数组里面

printf("s=%s\n",c);  


指针是什么,指针代表的是地址,是一个内存空间

&取地址符

存放内存地址的变量,就是指针变量


指针和指针变量

指针是用来表示一块内存地址的

指针变量是用来存放一个内存地址的


int  i=5;

int*  p;//定义一个指针变量

p=&i;

i与p互不影响

i与*p相互影响,是同一个变量,同一块内存空间


*号操作符

*号的几种含义

1,*号放在某种数据类型的后面,代表就是这种数据类型的指针int*

2,*号代表一个乘法符号

3,*号放在一个指针变量的前面,代表取这个指针变量所存放的地址里面所存放的数据


指针常见错误:

 /* 
     int* p;//定义一个指针变量
      printf("*p=%d/n",*p); 
      指针变量如果没有赋值,就不能使用 
     */ 
     /* 
      int i=5;
      char* p=&i;//编译错误,不符合的指针类型 
      类型不相同的指针,不可以相互转化 
      */


使用指针的时候,不可以访问已经被系统回收掉的数据

子函数执行完毕后,子函数里面所有的局部变量都会被系统回收


如何让子函数  更改主函数里面的数据

如何让子函数 返回一个以上的值

1让子函数的形参为主函数中要修改的变量的地址

2,调用子函数的时候,把要修改的变量的地址,传递给子函数

3,在子函数里面  修改这个地址里面存放的变量的内容

4,主函数使用这个变量的时候,里面的值就发生了变化,


可以利用char类型的指针表示字符串

char* arr="hello world";










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值