国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JNI

StonePanda / 1088人閱讀

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

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

為什么需要JNI

1.操作底層硬件,Android平臺上傳感器

2.應用程序對運行效率有要求,圖形渲染,音視頻解碼

3.復用成熟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 十進制有符號 int

%u 十進制無符號 unsigned int

%o 八進制無符號 unsigned int

%x 十六進制無符號 unsigned int

在%o和%x中間加#,輸出前導0,0x

%c 輸出一個字符

%s 輸出一個字符串,若干個

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

%ld %lf

輸出short類型用%hd

%p輸出變量的地址

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

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

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

輸入字符串寫法

char buf[10];//字符數(shù)組,可以保存字符串 "0"作為字符串的結束標志
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)存編號來區(qū)分管理,內(nèi)存單元的編號可以作為內(nèi)存單元的地址
3.指針:在C中把內(nèi)存單元的編號稱指針

指針變量

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

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

指針的指向

指向:如果一個指針變量保存了一個對應類型變量的首地址,指針變量指向這個變量,可以用指針運算符*訪問指向變量。

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

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

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

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

指針

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

指針的誤用

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

關于C字符串存儲和操作

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

指針變量運算

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

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

C不會檢查數(shù)組下標越界!!!

int arr[20];

  arr[19];

數(shù)組的特點:

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

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

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

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

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

歡迎加入學習交流群569772982,大家一起學習交流。

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70537.html

相關文章

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

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

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

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

    mist14 評論0 收藏0

發(fā)表評論

0條評論

StonePanda

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<