全部问题 > 当前问题

= =

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

吴思佳 2016-2-29 20:16:50

共 6 个回答

嘿嘿大人 2016-2-29 20:18:24

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

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

XFChen 2016-2-29 20:21:41

int定义一个整形变量

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

此时p是一个指针

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

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

匿名课官 2016-2-29 20:26:51

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

吴思佳 2016-2-29 20:28:01

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

匿名课官 2016-2-29 20:37:13

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

XFChen 2016-3-2 19:48:41

可以写int *p = &a;

可以写p = &a;

可以写*p = a;

就是不能写*p = &a

多看看,自己理解一下

问题来自: 指针变量