JNI學習筆記(一)——C語言基礎(chǔ)

1.開發(fā)環(huán)境

在cygine用gcc來開發(fā)梧兼,在window用dev-c++來開發(fā)

2.HelloWorld的編寫

#include <stdio.h> // 導入標準的輸入輸出庫 java import 
#include <stdlib.h> //導入常用函數(shù)庫 rand()隨機數(shù) fopen打開文件 strcpy 字符串拷貝 strcat 字符串拼接 
main(){//程序入口
printf("Hello World \n");// java system.out.printf(); 
system("pause"); //執(zhí)行DOS命令中的命令 }

3. 基本數(shù)據(jù)類型

java中的8種基本數(shù)據(jù)類型

boolean char byte short int long float double
1byte 2byte 1byte 2byte 4byte 8byte 4byte 8byte

C語言中的8種基本數(shù)據(jù)類型

char int float double long short
1 4 4 8 4 2
  • c語言中char占1byte,java中占2byte
  • c語言中l(wèi)ong 占4byte翅阵,java中占8byte
  • java中的byte在c語言里面用char表示
  • java中的string在c語言中用char[]表示
  • signed ,unsigned修飾類型,不能修飾浮點型(float乔夯,double)库说,不影響數(shù)據(jù)類型的長度

4.輸入輸出函數(shù)

char int float double long
%c %d &f %lf %ld
%x %o %s %#x
十六進制輸出long,int,short 八進制藏斩。。菇存。 字符串 0x開頭的十六進制
  • 輸入函數(shù)
char arr[20];
scanf("%d",arr);//參數(shù)一:指定類型 參數(shù)二:存放位置

*輸出函數(shù)

printf("i= %d\n"夸研,i);

5.指針

  • 指針就是存放地址的變量,內(nèi)存單元的編號
  • int * p;//一個存放int型數(shù)據(jù)類型的內(nèi)存單元地址依鸥;
int i = 5亥至;//1000H
int * p ; //1001H
p = &i贱迟;

*p = 1000H;
p = 5;
&p = 1001H姐扮;

指針常見錯誤
  • 1 指針未經(jīng)過初始化不能夠使用
  • 2不同類型的指針不能夠相互轉(zhuǎn)換,一個指針只能指向所對應(yīng)的數(shù)據(jù)類型
  • 3靜態(tài)變量不能跨函數(shù)訪問

6.程序執(zhí)行原理

內(nèi)存分為四塊地址:
常量區(qū)(define PI 3.14; const float PI 3.14;(不可修改))
方法區(qū)
棧(2M,一段連續(xù)的內(nèi)存空間衣吠,效率高茶敏,速度快,程序執(zhí)行時去使用蒸播,系統(tǒng)管理,靜態(tài)變量或方法)
堆(不連續(xù)的內(nèi)存空間萍肆,內(nèi)存碎片袍榆,速度慢,程序員管理塘揣,權(quán)限高)

7.指針和數(shù)組的關(guān)系

*數(shù)組是一段連續(xù)的內(nèi)存空間包雀,數(shù)組名指向數(shù)組的首地址
*指針占用的字節(jié)數(shù):等于操作系統(tǒng)的位數(shù)

8 動態(tài)內(nèi)存分配(malloc,realloc)

  • malloc
//malloc()//在堆空間里面動態(tài)的申請一段連續(xù)的空間  動態(tài)變量
//參數(shù)一:所要申請的空間的字節(jié)數(shù) 
//返回值:申請空間的首地址
int * p = (int *)malloc(sizeof(int));
*p = 99;
printf("指針p所指向的數(shù)據(jù) %d\n",*p);

釋放數(shù)據(jù)

int * p = (int *)malloc(sizeof(int));
*p = 99;
free(p)亲铡;
  • realloc
//realloc()//修改數(shù)組
//參數(shù)一:指定需要修改的數(shù)組
//參數(shù)二:指定修改后的數(shù)組大小
//返回值:修改后的數(shù)組的首地址
int * p = (int *)realloc(arr,len+count);

9.動態(tài)內(nèi)存和靜態(tài)內(nèi)存的比較(堆和棧的區(qū)別)

  • 1 申請方式不同才写。棧:系統(tǒng)自動分配,自動釋放(后進先出) 堆:程序員自己申請奖蔓,并指明大性薏荨(malloc)
  • 2 申請后系統(tǒng)的響應(yīng)。棧:只要申請空間大于棧剩余空間就提供空間吆鹤,否則報棧溢出厨疙。堆:遍歷空閑內(nèi)存地址鏈表,第一個大于申請空間的地址分配給程序疑务,刪除鏈表中該節(jié)點沾凄,并將多余的地址節(jié)點再次保存在鏈表里面。
  • 3 申請大小限制知允。棧:連續(xù)的撒蟀,較小的。堆:不連續(xù)温鸽,較大保屯。
  • 4 申請效率比較 。棧:系統(tǒng)自動分配,速度快配椭,程序員無法控制虫溜。堆:malloc/new 分配內(nèi)存,速度慢股缸,有碎片衡楞,但是使用方便。
  • 5 堆和棧中的存儲內(nèi)容敦姻。棧:主函數(shù)中下一個指令的地址——>函數(shù)的參數(shù)——>局部變量(靜態(tài)變量不入棧)瘾境。堆:堆的頭部存放用一個字節(jié)存放堆的大小,其他由程序員決定镰惦。
  • 6 內(nèi)存的回收迷守。 棧:系統(tǒng)自動回收。堆:free()回收

10.函數(shù)的指針

void add(int i ,int j){
}
main(){
int (*pf)(int i,int j);//接受兩個int參數(shù)旺入,返回類型int 型的指針
pf = add;
}

11.結(jié)構(gòu)體和聯(lián)合體

  • 結(jié)構(gòu)體
struct Student{
int age;
float score;
char sex;
}
main(){
struct Student stu = {20,99.0f兑凿,'f'};
stu.age = 21;
}
  • 結(jié)構(gòu)體長度:當前結(jié)構(gòu)體中單個變量的長度(占有字節(jié)數(shù)最大的長度)*變量的個數(shù)
    公式:字節(jié)數(shù)最大的變量 * 結(jié)構(gòu)體變量個數(shù)
  • 聯(lián)合體
    struct date{//12
        int year;//4
        int month;//4
        int day;//4
    }today;
    
    union{//    匿名聯(lián)合體
        long i;//4 
        int k;//4
        char ii;//1
        
    }mix;
  • 聯(lián)合體 變量共用同一塊內(nèi)存空間 節(jié)省內(nèi)存空間 方法返回類型
    長度:占有字節(jié)數(shù)最大的變量的字節(jié)長度

12.枚舉

(android中狀態(tài)標記的時候可以用到)

#include<stdio.h>
enum Weekday{
    Monday,Tuesday,Wednessday,Thursday,Friday,Saturday,Sunday
};
main(){
    enum Weekday day = Sunday;
    printf("day = %d\n",day);//day = 6;
    system("pause");
}
  • 默認從0開始茵瘾,也可以自定義開始值礼华。
enum Weekday{
    Monday=1,Tuesday,Wednessday,Thursday,Friday,Saturday,Sunday
};

13.自定義數(shù)據(jù)類型Typedef

Typedef JavaNativeInterface jni;//jni就是JavaNativeInterface的代號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拗秘,隨后出現(xiàn)的幾起案子圣絮,更是在濱河造成了極大的恐慌,老刑警劉巖雕旨,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扮匠,死亡現(xiàn)場離奇詭異,居然都是意外死亡凡涩,警方通過查閱死者的電腦和手機棒搜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來活箕,“玉大人帮非,你說我怎么就攤上這事《锬ⅲ” “怎么了末盔?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長座慰。 經(jīng)常有香客問我陨舱,道長,這世上最難降的妖魔是什么版仔? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任游盲,我火速辦了婚禮误墓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘益缎。我一直安慰自己谜慌,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布莺奔。 她就那樣靜靜地躺著欣范,像睡著了一般。 火紅的嫁衣襯著肌膚如雪令哟。 梳的紋絲不亂的頭發(fā)上恼琼,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音屏富,去河邊找鬼晴竞。 笑死,一個胖子當著我的面吹牛狠半,可吹牛的內(nèi)容都是我干的噩死。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼神年,長吁一口氣:“原來是場噩夢啊……” “哼已维!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瘤袖,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤衣摩,失蹤者是張志新(化名)和其女友劉穎昂验,沒想到半個月后捂敌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡既琴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年占婉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甫恩。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡逆济,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出磺箕,到底是詐尸還是另有隱情奖慌,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布松靡,位于F島的核電站简僧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雕欺。R本人自食惡果不足惜岛马,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一棉姐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啦逆,春花似錦伞矩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盲镶,卻和暖如春侥袜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溉贿。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工枫吧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宇色。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓九杂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宣蠕。 傳聞我的和親對象是個殘疾皇子例隆,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • C語言中內(nèi)存分配 在任何程序設(shè)計環(huán)境及語言中,內(nèi)存管理都十分重要抢蚀。在目前的計算機系統(tǒng)或嵌入式系統(tǒng)中镀层,內(nèi)存資源仍然是...
    一生信仰閱讀 1,148評論 0 2
  • (JG-2014-08-20)(前半部分經(jīng)過網(wǎng)上多篇文章對比整理)(后半部分根據(jù)ExceptionalCpp、C+...
    JasonGao閱讀 5,597評論 2 23
  • 前言 C語言作為一門應(yīng)用途廣泛皿曲、功能強大唱逢、使用靈活的面向過程式編程語言。既可用于編寫應(yīng)用軟件屋休,又能用于編寫系統(tǒng)軟件...
    老板娘來盤一血閱讀 12,963評論 32 83
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,712評論 0 4
  • 感恩所有前來參會的領(lǐng)導坞古、嘉賓、合作伙伴們劫樟!熱烈祝賀海田農(nóng)業(yè)成立12周年感恩答謝會圓滿成功痪枫! 一,每天早上六點起床跑...
    天生贏家楊永剛閱讀 172評論 0 0