亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JNI

StonePanda / 1154人閱讀

摘要:不會(huì)檢查數(shù)組下標(biāo)越界數(shù)組的特點(diǎn)元素?cái)?shù)據(jù)類型相同元素在內(nèi)存中連續(xù)的數(shù)組名代表首元素首地址指針與數(shù)組的關(guān)系堆區(qū)內(nèi)存的申請(qǐng)及釋放在堆區(qū)分配學(xué)生學(xué)號(hào)數(shù)組自己申請(qǐng),還需要自己釋放歡迎加入學(xué)習(xí)交流群,大家一起學(xué)習(xí)交流。

什么是JNI
JNI Java Native interface 一種協(xié)議 提供一套編程框架,java和本地代碼相互調(diào)用

為什么需要JNI

1.操作底層硬件,Android平臺(tái)上傳感器

2.應(yīng)用程序?qū)\(yùn)行效率有要求,圖形渲染,音視頻解碼

3.復(fù)用成熟C開源軟件,OpenGL,OpenSSL,SQLite3,FFmpeg

4.安全性要求,本地C代碼反編譯困難

C基本數(shù)據(jù)類型

c里面char占1byte,而java占2bytes;
*C里面的long占4bytes ,java中占8bytes
c里面沒有boolean類型,可以用unsigned char代替

C語言輸入輸出函數(shù)

都需要包含頭文件stdio.h

格式化輸出函數(shù)printf d u o x 整數(shù),c s,f

%d 十進(jìn)制有符號(hào) int

%u 十進(jìn)制無符號(hào) unsigned int

%o 八進(jìn)制無符號(hào) unsigned int

%x 十六進(jìn)制無符號(hào) unsigned int

在%o和%x中間加#,輸出前導(dǎo)0,0x

%c 輸出一個(gè)字符

%s 輸出一個(gè)字符串,若干個(gè)

若要輸出long和double類型,在相應(yīng)字符前l(fā)

%ld %lf

輸出short類型用%hd

%p輸出變量的地址

格式化輸入函數(shù)scanf d c s f

輸入其它數(shù)據(jù)

printf("請(qǐng)輸入整數(shù):");
scanf("%d",&i);//&i告訴scanf輸入數(shù)據(jù)存到哪

輸入字符串寫法

char buf[10];//字符數(shù)組,可以保存字符串 "0"作為字符串的結(jié)束標(biāo)志
printf("輸入字符串:");
scanf("%s",buf);//數(shù)組名代表數(shù)組首元素首地址 buf[0] &buf[0] <=> buf

printf("buf:%sn",buf);

什么是指針

1.內(nèi)存:最小單位1byte,8bits,一維線性分布
32cpu 4G內(nèi)存的地址空間
1k = 1024bytes 2^10
1M = 1024k = 1024 * 1024 bytess 2^20
1G = 1024M = 1024 1024 1024 bytes 2^30
4G = 4 1G = 2^2 2^30 = 2^32
2.內(nèi)存單元:通過內(nèi)存編號(hào)來區(qū)分管理,內(nèi)存單元的編號(hào)可以作為內(nèi)存單元的地址
3.指針:在C中把內(nèi)存單元的編號(hào)稱指針

指針變量

普通變量:一般數(shù)據(jù)
指針變量:保存內(nèi)存單元地址,可以利用指針運(yùn)算符*訪問內(nèi)存
*的三種應(yīng)用含義

3 5 : 剩法
int *p; : 定義指針變量,區(qū)分了變量類型
p = i; 取對(duì)象運(yùn)算符

指針的指向

指向:如果一個(gè)指針變量保存了一個(gè)對(duì)應(yīng)類型變量的首地址,指針變量指向這個(gè)變量,可以用指針運(yùn)算符*訪問指向變量。

int i = 20;
  char c = "k";

  int *p;
  char *q;
  p = &i;//指針變量p指向i 
  q = &c;

  //p = &c;
  //p = (int *)&c;//如果真要保存需要強(qiáng)轉(zhuǎn) (要轉(zhuǎn)的指針類型) 

  //*p <=> i 
  printf("i = %d
",*p); 

指針

地址,指針變量在不影響理解時(shí),都稱為指針

指針的誤用

指針沒有合法指向,初始值NULL
混用指向不同類型的指針,如果真要把不同類型的地址賦給指針變量,需要強(qiáng)轉(zhuǎn)

關(guān)于C字符串存儲(chǔ)和操作

char buf[10];字符數(shù)組用來保存字符串;
char *p = buf;字符指針可以保存字符串首地址,從而找到并處理字符串

指針變量運(yùn)算

指針變量加減一個(gè)整數(shù)n,指針向高地址或低地址移動(dòng)n個(gè)對(duì)象,要求在一段連續(xù)內(nèi)存空間上移動(dòng)
數(shù)組

數(shù)組:相同數(shù)據(jù)類型變量的集合。

C不會(huì)檢查數(shù)組下標(biāo)越界!??!

int arr[20];

  arr[19];

數(shù)組的特點(diǎn):

1.元素?cái)?shù)據(jù)類型相同
2.元素在內(nèi)存中連續(xù)的
3.數(shù)組名代表首元素首地址 arr <=> &arr[0]

指針與數(shù)組的關(guān)系

a[i]    <=> *(a + i)    <=> *(p + i)    <=> p[i]
p[i] => *(p + i)

堆區(qū)內(nèi)存的申請(qǐng)及釋放

int *pid = (int *)malloc(num * sizeof(int)); //在堆區(qū)分配學(xué)生學(xué)號(hào)數(shù)組
pid = (int *)realloc(pid,num * sizeof(int));
free(pid);//自己申請(qǐng),還需要自己釋放

歡迎加入學(xué)習(xí)交流群569772982,大家一起學(xué)習(xí)交流。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/70537.html

相關(guān)文章

  • Andorid Studio NDK開發(fā)-Hello World

    摘要:介紹了在中配置的開發(fā)環(huán)境開發(fā)環(huán)境配置,開發(fā)環(huán)境配置完成之后,就要寫一下著名的程序了。尤其是但是并不妨礙你使用其他語言,只要調(diào)用約定支持就可以了。是指定所在的目錄,項(xiàng)目成功之后,會(huì)在目錄里生成文件。是包名加上類名。 介紹了在Android Studio中配置NDK的開發(fā)環(huán)境:Android Studio NDK開發(fā)-環(huán)境配置,NDK開發(fā)環(huán)境配置完成之后,就要寫一下著名的Hello Wor...

    melody_lql 評(píng)論0 收藏0
  • Step By Step_Java通過JNI調(diào)C程序執(zhí)行

    摘要:以下將以一個(gè)實(shí)際例子展示通過調(diào)用打印主要記錄實(shí)現(xiàn)的過程和方法,對(duì)其中的一些原理和規(guī)范不做具體展開。指向在此代碼中實(shí)例化的對(duì)象的一個(gè)句柄,相當(dāng)于指針。加載本地共享庫運(yùn)行結(jié)果如下傳遞參數(shù)接下來看一下如何通過向傳遞參數(shù)。 showImg(https://segmentfault.com/img/remote/1460000008935007); 文章為本人編纂,轉(zhuǎn)載請(qǐng)聯(lián)系作者并注明出處。 在...

    mist14 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

StonePanda

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<