C語言-基礎(chǔ)教程-指針運算符與指針表達(dá)式

字號:

6.3.1指針運算符與指針表達(dá)式
    在C中有兩個關(guān)于指針的運算符:
    •&運算符:取地址運算符,&m即是變量m的地址。
    •*運算符:指針運算符,*p表示其所指向的變量。
    [例6-2]從鍵盤輸入兩個整數(shù),按由大到小的順序輸出。
    main()
    {
    int*p1,*p2,a,b,t;/*定義指針變量與整型變量*/
    scanf("%d,%d",&a,&b);
    p1=&a;/*使指針變量指向整型變量*/
    p2=&b;
    if(*p1<*p2)
    {/*交換指針變量指向的整型變量*/
    t=*p1;
    *p1=*p2;
    *p2=t;
    }
    printf("%d,%d\n",a,b);
    }
    在程序中,當(dāng)執(zhí)行賦值操作p1=&a和p2=&b后,指針實實在在地指向了變量a與b,這時
    引用指針*p1與*p2,就代表了變量a與b。
    運行程序:
    RUN
    3,4
    4,3
    在程序運行過程中,指針與所指的變量之間的關(guān)系如圖6-4所示:
    當(dāng)指針被賦值后,其在內(nèi)存的安放如a),當(dāng)數(shù)據(jù)比較后進(jìn)行交換,這時,指針變量與所指向的變量的關(guān)系如b)所示,在程序的運行過程中,指針變量與所指向的變量其指向始終沒變。
    下面對程序做修改。