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

指针表达式:

    

猜你喜欢

转载自blog.csdn.net/weixin_38807927/article/details/79998518