JNI 學習筆記系列(二)
c中沒有Boolean類型的值,一般是使用1表示true,0表示false,c中也沒有String類型的數據,c中的字符串要通過char數組來表示。c中沒有byte類型,一般用char表示byte類型。
先看看c中數據類型長度:
# include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
signed和unsigned 表示數據類型的修飾符,它們只能修飾整數類型的數據。
再來看看c中的輸入輸出:
# include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
指針:
*的幾種含義:
1.*放在某種數據類型的后面,代表就是這種數據類型的指針
2.* 代表一個乘法符號
3.* 放在一個指針變量前面代表這個指針變量所存放的地址對應的數據。
# include
1
2
3
4
5
6
7
8
運行結果:
由上圖可以看出,p和i是兩個完全不相同的變量,p的改變不會影響i,i的改變也不會影響p;但是*p和i則是同一個值,更改*p會影響i,同理,更改i也會影響*p.
通過子函數來修改主函數中變量的值。
# include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
把i和j對應的地址傳遞給swap函數,*p和*q分別代表變量i和j的地址所對應的變量值,在swap函數中,通過直接操作變量的地址所對應的變量值來交換兩個變量之間的值。
指針變量常見錯誤:
1.指針變量未賦值(野指針)不可使用
2.不相符合的指針類型不可互傳。比如以下代碼錯誤:
int i = 9; char* c; printf("%c\n",*c);
1
2
3
指針不可以訪問被系統回收的變量,子函數調用完畢之后,函數體內的所有局部變量會被系統回收。
數組中arr[i] 、*(arr+i)表示同一個變量。數組是一塊連續的內存空間,數組名是首地址。
數據結構
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。