1. 程式人生 > >C語言之指標詳解

C語言之指標詳解

指標 &:操作符產生它的運算元的地址。
如: int a, *b (*b:指向整形變數的指標)
    ....
    b = &a; (&操作符取變數a的地址,並把它賦值給指標變數)
*操作符是間接訪問操作符,它與指標一起使用,用於訪問指標所指向的值。 在前面賦值操作完成之後。表示式b的值是變數a的地址, 表示式*b的值是變數a的值。
int a = 112, b = -1;
float c = 3.14;
int   *d = &a;
float *e = &c;
輸出:
a = 112, b = -1 c = 3.14 d = 100 e = 108 *d = 112 *e = 3.14
表示式 右值 型別
a 112 int
b -1 int
c 3.14 float
d 100 int* (100:a 的地址)
e 108 float* (108:c 的地址)
*d 112 int
*e 3.14  float
指標、間接訪問和變數:
*&a = 25;
答案:它把值24賦值給變數a
分析:首先,&操作符產生變數a的地址,它是一個指標常量。接著,*操作符訪問其操作所表示的地址。
間接訪問操作只能作用於指標型別的表示式
指標的指標: int a = 12;
int *b = &a;
int **c = &b;

*操作符具有從右向左的結合性,所以表示式相當於*(*c),*c訪問c所指向的位置。 間接訪問操作只能作用於
        表示式    相當的表示式
a         12
b         &a

*b    

    a,12
c         &b

*c        b, &a

**c       *b, a, 12

指標表示式: