android jni 之C語言基礎

來源:互聯網
上載者:User

標籤:android   c   style   class   blog   code   

  *含義

1.乘法 3*5 2.定義指標變數 int * p;//定義了一個名字叫p的變數,能夠存放int資料類型的地址3.指標運算子,    //如果p是一個已經定義好的指標變數則*p表示以p的內容為地址的變數

  列印資料類型

%d  -  int%ld – long int%c  - char%f -  float%lf – double%x – 十六進位輸出 int或者long int或者short int%o -  八進位輸出%s – 字串

  3、指標

指標就是地址. 熱身小程式 介紹指標int * p; //p是變數的名字, int * 表示p變數的資料類型是存放int類型的地址的資料類型//int * p; 不表示定義了一個名字叫做*p的變數// int * p; 應該這樣理解: p是變數名, int *是資料類型 ,p變數的資料類型是int*//所謂int * 類型 實際就是存放int變數地址的類型    int i = 3;p = &i;/*1. p儲存了i的地址, 因此p指向i  2. p不是i,i也不是p,修改p的值不影響i的值,修改i的值也不會影響p的值  3. 如果一個指標變數指向了某個普通變數, 則 *指標變數  就完全等同於  普通變數               例子:                        如果p是個指標變數,並且p存放了普通變數i的地址則p指向了普通變數i
*p 就完全等同於 i 在所有出現*p的地方都可以替換成i 在所有出現i的地方都可以替換成*p *p 就是以p的內容為地址的變數*/j = *p; //等價於 j = i;printf("i = %d, j = %d\n", i, j);

  4、指標與數組

數組名,下標和指標的關係,指標變數的運算數組名int a[5] //a是數組名,5是數組的大小,元素個數int a[3][4] // 3行4列 a[0][0]就是數組的第一個元素Int b[5]A=b ;//錯誤一維數組名是個指標常量,它存放的是一維數組第一個元素的地址int a[5];int a[3][4];printf("%#X\n",&a[0]);printf("%#X\n",&a);下標和指標的關係如果p是個指標變數 則p[i] 等價於 *(p+i)

  5、動態分配記憶體

動態記憶體分配問題    傳統數組的缺點        1.數組長度必須實現指定,        並且只能是常整數.        int a[5];        int len;        int a[len];//error        2.傳統形式的數組,程式員沒法手動釋放空間    數組一旦定義,系統為該數組分配的空間一直存在    函數運行完畢,數組的空間就被釋放        3.數組的長度不能在函數運行中動態增加或者縮小            4.A函數定義的數組只有在A沒執行完畢前被使用,a函數運行完畢後,a的數組就無法被其他函數使用
# include <stdio.h># include <malloc.h>  //不能省  malloc 是 memory(記憶體) allocate(分配)的縮寫int main(void){    int i = 5; //分配了4個位元組 靜態分配   11 行    int * p = (int *)malloc(4); //12行        /*            1. 要使用malloc函數,必須添加malloc.h這個標頭檔            2. malloc函數只有一個形參,並且形參是整型            3. 4表示請求系統為本程式分配4個位元組            4. malloc函數只能返回第一個位元組的地址            5. 12行分配了8個位元組, p變數佔4個位元組, p所指向的記憶體也佔4個位元組            6. p本身所佔的記憶體是靜態分配的, p所指向的記憶體是動態分配的               */    *p = 5; //*p 代表的就是一個int變數, 只不過*p這個整型變數的記憶體配置方式和11行的i變數的分配方式不同    free(p); //freep(p)表示把p所指向的記憶體給釋放掉  p本身的記憶體是靜態,不能由程式員手動釋放,p本身的記憶體只能在p變數所在的函數運行終止時由系統自動釋放     printf("大家好!\n");    return 0;}

     6、函數指標

1.定義int (*pf)(int x, int y);2.賦值 pf = add;3.引用 pf(3,5);

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.