在C语言中,指针*p= 右边的值是地址还是值,那p= 右边的值是地址还是值呢
*p=右边是值
p=右边是地址
*p 表示指针指向数据的数值
p 表示指针指向数据的地址
int *p;
int a
*
是取值符,&
是取地址符。
指针即地址,故p = &a
;
空间存值,故*p = a;
上面的回答都是对的也都是错的,这个要分情况的
1、声明和赋值一起 int *p = xxx, 这个时候xxx是地址。int p = yyy,yyy是值
2、前面已声明 int *p; 了, 那么后再用 *p = xxx,这个时候xxx是值,p=yyy,yyy是地址
看这个:
int a; //定义整型变量a
int* p=&a; //定义指针p,指向a的地址
a=10; //把a赋值为10,等价于 *p=10; 这时候这个*就是对指针p进行解引用,也就是说 *p等价于a
int a; //定义整型变量a
int* p; //定义指针变量p,这里的*是用来说明p的类型是一个指针型变量
p=&a; //用p指向a的地址
*p=10; //等价于 a=10;
*p右边的是地址
p右边的是值