C語言之指標詳解
阿新 • • 發佈:2018-12-01
指標 &:操作符產生它的運算元的地址。
如: 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;
如: 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 **c = &b;
*操作符具有從右向左的結合性,所以表示式相當於*(*c),*c訪問c所指向的位置。 間接訪問操作只能作用於
表示式 相當的表示式
a 12
b &a
*b a,12
c &b
*c b, &a
**c *b, a, 12
指標表示式: