C语言笔记


什么是jni
jni  java native interface
android 也是用到了jni
就是翻译  c 和java


为什么用jni
一次编译 到处运行 
c语言可以进行驱动的开发   驱动就是和硬件打交道  01010111 
c语言执行效率比较快    java 内存回收基于算法的回收  二级链表   c语言是手动回收   
自动车  手动车的

c 70年代  产生了大量可以复用的代码  
7-zip 
ffmpeg 音视频解码   
opencore 音视频
opencv 图像处理 

医疗管理平台 
扫描二维码   
美国红外线   需要单独调用一个驱动 c代码   
车载系统   android  



怎么用jni  
c语言 > java >c# >美工 
 
面向过程 
第一步打开冰箱门  
第二部放进大象
3  关门

面向对象 
冰箱对象 


了解jni
熟悉jni
掌握jni
精通jni


为什么使用 DEVCPP_skycn
c99 标准  
arr.lenth
// 内存越界

指针  
指针其实就是代表的内存地址  
地址就是系统给内存分配的编号  

指针变量  存放地址的变量  

两个常见的错误 
1 不给指针赋值 直接调用  野指针 
2 指针类型和地址的类型不匹配  
float t
int* i=&t

指针和指针变量混淆 

int* p
(*p).age; * 的优先级特别的低 


* 号的三种含义 
1 乘法   
2 如果*在类型后 代表是该类型的指针变量类型
3 * 如果再指针变量前

指针常见错误


32 位 4G内存   8G 


64位  
int  2^32 

.dll windows下库函数 
.so 动态函数库   体积小 别的库里面的函数动态加载进来
.a 静态的库函数 只要用到的函数包括别的包的 都打包进来

指针和数组的关系
// 数组中的元素在一块连续的内存地址中 
// 数组变量的内存地址对应的是数组中第一个元素的内存地址 
同类型的指针默认的偏移量是不一样的 int*  偏移4个字节 

指针的运算 


内存分配 
静态内存


动态内存
 
.data  // 常量池  
C语言 内存 
.code 区 // 存放的都是代码
main();

.stack;// 占内存  所有静态分配的内存 都放在栈内存中  吃完吐  连续分配         先进后出  队列 先进先出    吃完拉
堆内存  // 动态分配的内存 都放在堆内存中,   不是连续分配内存的 
 free() ;// 手动释放内存   硬盘删除文件     30次  
 
malloc  memorry  alloc

// class Person{
int  age;
String name;
char sex;'m'


}




 char* c 可以表示字符串 
 
 
 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值