= =
吴思佳 圈内达人 2016-02-29 20:16:50
2502 6 0

在指针变量中,*p,&p,p到底有什么区别?为什么不可以写int a=5,*p;*p=&a;但是可以直接写int *p=&a;此时*p到底是a的地址还是a的值?以及如果输出&p那又是什么?我已经搞不清了= =

问题来自: 指针变量

共 6 个回答

    嘿嘿大人 一代宗师 2982天前

    nt a=5,*p;//在定义的时候星号是说明p是指针变量的

    *p=a;//这里的星号是取地址符号,

    XFChen 资深达人 2982天前

    int定义一个整形变量

    int *p定义一个指向整形变量的指针

    此时p是一个指针

    p = &a即将a的地址赋值给指针变量p

    此时*p指指针变量p指向的变量的值

    匿名课官 资深达人 2982天前

    就把定义的时候int *看做一起的,就是int *p定义的是int *类型的p指针,其中p代表指针的地址,*p代表p地址中的值。

    吴思佳 圈内达人 2982天前

    回复 XFChen:那&p是指啥,我有做到过这个选择题,以及为什么不可以写int a=5,*p;*p=&a;但是可以直接写int *p=&a;此时*p到底是a的地址还是a的值?

    匿名课官 资深达人 2982天前

    回复 吴思佳int *p=&a;这个定义语句把int *看做类型名(类似int)。所以可以看做int *p;p=&a;表示定义一个*p指针指向a地址。其中p的值是a的地址(&a),*p表示对p的地址求值运算,该题*p的值就是a了。

    XFChen 资深达人 2980天前

    可以写int *p = &a;

    可以写p = &a;

    可以写*p = a;

    就是不能写*p = &a

    多看看,自己理解一下

您还没有登录,所以不能回复该问题