木头人木 发表于 2019-7-19 22:50:35

关于*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了吗?

Croper 发表于 2019-7-19 22:54:13

*是解引用操作符,取值操作符是什么鬼
y作为一个指针,解引用后为指针指向的变量,即b,整个语句即b=a,把a的值赋值给b

狞豸_ 发表于 2019-7-19 23:23:12

*y=3是把=右边的值赋给指针y指向的b , 你当成这样看,他是先计算右边的,这样*x就表示3
楼上说的没错,你完全可以把*y=*x看成a=b

木头人木 发表于 2019-7-19 23:41:54

困扰好几天的问题终于明白了。谢谢!!!
页: [1]
查看完整版本: 关于*x=*y的问题