日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JNI之C语言简单回顾

發布時間:2024/1/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JNI之C语言简单回顾 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JNI之C語言簡單回顧
一.C語言基本數據類型:
?c語言中? char, int, float, double, signed, unsigned, long, short and void
// java 中的8大本數據類型和他們的長度
// byte 1 char 2 short 2 int 4 long? 8 double? 8 float 4 boolean 1

// 在c99標準的c語言.沒有 byte 類型 沒有boolean 類型
// 在c語言里面 0表示的是假 非0表示的是真
// sizeof(); 獲取某種數據類型的長度 , 接受一個參數(數據類型)

// c語言中的char類型是1個字節? java里面char是兩個字節
// c語言中的char的長度 和 java中的byte的長度相同 ,所以可以用 c 語言中的char類型 表示 java中的byte類型
// c語言中的int 和 java中的int在內存中的長度相同 所以java的int 和c語言中的int 可以互相代替使用.
?
// c語言中long類型是4個字節 java中的long類型是8個字節


二. C 語言的輸入函數???? ?
//scanf();
// java 語言里面有一個數據類型 叫String 字符串
// c語言里面 是沒有String類型
// c語言表示一個字符串? 定義一個字符的數組
// 利用scanf %s 的方式 可以方便的從鍵盤獲取一個字符串

三。 指針入門:
// 指針代表的就是一個內存地址. 內存地址 可以用一個指針來表示.
// 地址就是一塊內存空間的編號,通過這個編號 我們可以使用以一塊內存空間.

// 指針變量:? 可以存放指針類型(內存地址數據)數據的變量 指針變量.
????????? // 使用* 來表示指針變量.
????????? // int*? 代表的就是一個表示int類型數據地址的變量
?? ? ?
補充*號的幾種作用.
?????? // 3*5? 1.*號的第一種作用 代表的是相乘的操作.
?????? //??????? 2.在一個數據類型的后面 跟上一個*號 代表就是這種數據類型的指針變量
?????? //??????? 3. 在一個指針變量前面加上一個*號 代表的是 訪問這個指針變量里面存放的地址里面存儲的內容. ?? ? ?
函數指針
int (*pf) ( int x, int y); // 定義一個函數的指針 這個函數 返回值為int 接受兩個int類型的參數

四.指針使用的常見錯誤:
指針的常見錯誤一:
?
?
????? //指針變量的類型 要跟 存放數據的類型 必須要對應
?????? // int類型的變量的地址 要用int*來表示.
?????? // float類型變量的地址 要用float* 來表示.
????? ?
指針的常見錯誤二:
???????? int i = 5;
?????? int* p ;
?????? printf("*p=%d\n",*p);? // 如果p變量沒有進行初始化, 里面存放的是一個垃圾值 混亂值.
?????????????????????????????? // *p 訪問了一塊不知道的內存? (野指針)?????????????????? ?
?????? ?
??????? // 指針變量 未經賦值 ,不能使用.
??????? // 如果修改一個野指針指向的內存空間,可能會出現嚴重的錯誤.

??????? //window操作系統 提供了一些api? 提升父進程的權限.

五: 指針的長度
?? ?
//所有數據類型的指針長度 都是4個字節
?????? //32位的操作系統, 要想表示一個地址 2的32次方個地址.
?????? //指針類型的 作用主要就是在指針運算的時候 起作用. 在獲取指針所指向的數據的時候 起作用.
六. 多級指針
????? ?
七. 手動分配內存
棧內存會被系統自動回收,不能被手動回收
堆內存不會被系統自動回收,需要由程序員手動回收



八. 結構體,聯合體和枚舉,自定義類型
結構體:
struct Student?????????? //此寫法為最標準寫法
{
?? ?int age;? // 4
?? ?float score; // 4
?? ?long? id;// 4
?? ?char c;? //? 為了方便處理,也分配為4
?? ?
?? ?//不同的編譯器 處理的結果可能 不同
} ;


三種寫法:

第一種
struct Student
{
? int age;
? float score;
? char sex;
}

第二種
struct Student2
{
?int age;
?float score;
?char sex;
} st2;

第三種
struct
{
?int age;
?float score;
?char sex;
} st3

聯合體
union {double d; long i; int k; char ii; } mix;

typeof給一個變量定義一個別名

總結

以上是生活随笔為你收集整理的JNI之C语言简单回顾的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。