1. 程式人生 > >學習鏈表關於指針的一些理解

學習鏈表關於指針的一些理解

二級指針 出現 學習 技術 技術分享 sys 輸出* std 分享圖片

指針必須要初始化(即使是結構體指針),不然就算不出現編譯錯誤,在運行也會出現錯誤。
1、void* 通常來說有三種用法,詳情請百度。
2、在調用函數中的指針地址和主函數中指針地址已經不同,只是其中儲存的地址都指向了a而已。

#include<stdio.h>
#include<stdlib.h>
void Try_change(int *p) {
    int b = 7;
    printf("Try p=%p &p=%p\n", p, &p);
    p = &b;
}
int main() {
    int *p = NULL;
    int a = 5;
    p = &a;
    printf("main p=%p &p=%p\n", p, &p);
    Try_change(p);
    printf("%d\n", *p);
    system("PAUSE");
    return 0;
}

運行結果:
技術分享圖片

3、關於指針的指針(二級指針)

int a[5] = {1, 2, 3, 4, 5};
     int *p = a;
     int **point = &p;

輸出**point,結果為1,等價於*p;
詳情請參見:
http://blog.csdn.net/g200407331/article/details/52610150

學習鏈表關於指針的一些理解