JNI

jni : java native interface

c 基础

基本数据类型

  • short : 2个字节
  • int: 4个字节
  • long: 4个字节
  • float : 4个字节
  • double: 8个字节
  • char: 1个字节
  • long long : 8个字节

  • signed 有符号

    • 最高位做符号位。如果为1的时候,代表负数。
  • unsigned 无符号

    • 最高位不再是符号位, 只能用来表示整数
  • 常用的占位符:

    • %d 表示一个有符号的十进制数
    • %u 表示一个无符号的十进制数
    • %x 表示一个十六进制。
    • %#x 用十六进制表示,但是有一个十六进制表示的开头:0x
    • %c 字符
    • %f 浮点数
    • %ld 表示一个长整形的十进制数
    • %o 表示一个八进制的数
    • %#o 用八进制表示,但是有一个八进制的开头:0
获取变量的地址
  • &: 如果是一元表达式,则认为是取地址符
指针
  • 指针的值 指向一个内存地址
  • 表现形式:类型* 指针的变量名
  • 获取地址(指针)上的内容:

    int * p = xx;
    *p;
    
值传递,指针传递
堆栈
  • 栈:
    • 用完就释放
    • 内存是自动申请的
    • 内存连续的

    • java; 通过new 申请,如果没有任何引用指向这个对象,一定事件后,垃圾回收器会回收这个内存,不需要手动管理。
    • c :
      • malloc申请内存的。
        • 参数:申请内存的代销
        • 返回值:申请内存的起始地址,可以用来做一个指针。
      • free 释放内存: 参数是这个指针(内存地址)
数组
  • char arr[] = “hello”;
  • arr里放的就是这个数组第一个元素的地址。数组里元素的地址是连续的
  • c里的字符串后边都有一个\0作为字符串结束符

方法指针

     void (*tostr)();

声明一个方法的指针,这个指针可以接受一个返回值类型为void的方法的地址

结构体:

  • 定义方法:

    typedef struct{ //成员} 结构体名字;
    
  • 在对象创建结构体。

    结构体名字* p = malloc(sizeof(结构体名字));
    
  • 调用:

    假设,p是结构体Person的一个指针。

    • (*p).age
    • p->age //p-> 相当于 (*p).
自定义类型
  • typedef 把一个数据类型起另外一个名字
  • #define : 宏定义,不要分号。一般用来定义常量
  • 定义bool属性

    typedef char bool;
    #define true 1
    #define false 0
    
    int main()
    {
        bool a = true;
        bool b = false;
        if(a)
        {
             printf("true\n");
        }
        if(!b)
        {
              printf("false\n");
        }
    
        printf("%d\n", sizeof(bool));
    
        system("pause");
    } 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值