一、什麼是指針數組
二、指針用於參數指針
三、指針用於返回值對象
四、指針加減操做生命週期
五、指針與數組區別內存
一、什麼是指針it
• 內存被分爲字節,每一個字節有惟一的地址,指針指的就是內存地址。io
• 保存指針的變量,就叫指針變量。(保存地址)class
• 聲明一個指針變量變量
int i = 0;數據類型
int* p;//聲明一個指針變量 int* 指針類型
int * p; int* p; int *p;
• 每一個指針變量能指向一種特定類型的對象(地址,內存區 域)。
• 指針是引用數據類型,由於自己沒有保存數據,只是保存了 數據的地址,間接的找到內存中的數據。
二、指針用於參數
• 值傳遞
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;}
int main() {
int a = 5, b = 8;swap(a, b);
printf(「%d,%d」, a, b);
}
• 地址傳遞
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;}
int main() {
int a = 5, b = 8;swap(&a, &b);
printf(「%d,%d」, a, b);
}
三、指針用於返回值
• 指針也能夠作爲返回值
• 不要返回自動變量的地址,由於局部變量的生命週期,當函 數結束,局部變量會被自動清除(釋放)。解決方案:延長 生命週期。
四、指針加減操做
• 指針支持加整數、減整數、指針的比較和相減,但運算的單位由指針的類型決定。
int類型指針+1 = 地址+4
char類型指針+1 = 地址+1
五、指針與數組區別
• 佔用內存空間
-數組佔用空間 = 數組元素佔用的空間*長度
-指針佔用空間 = 在64位系統下,8個字節,固定的,與指針 的類型不要緊。
• 賦值
-數組名是常量,是不能夠修改其值
-指針是變量,能夠屢次賦值
-對指針的賦值,本質上是指針指向的改變