关于*x=*y的问题
#include<stdio.h>
int main()
{
int a=3,b=5;
int *x,*y;
x=&a;
y=&b;
*y=*x;
printf("%d\n",b);
}
在这个程序中为什么可以*y=*x这样赋值?
*号不应该是取值操作符吗?这样不就成了3可以赋值给5了吗? *是解引用操作符,取值操作符是什么鬼
y作为一个指针,解引用后为指针指向的变量,即b,整个语句即b=a,把a的值赋值给b *y=3是把=右边的值赋给指针y指向的b , 你当成这样看,他是先计算右边的,这样*x就表示3
楼上说的没错,你完全可以把*y=*x看成a=b 困扰好几天的问题终于明白了。谢谢!!!
页:
[1]