saberAMD 发表于 2018-12-10 10:32:31

指针问题,



#include <stdio.h>

int main()
{
        int a,b,c;
        int *d,*e,*f,*g;
       
        printf("请输入三个数:");
        scanf("%d %d %d",&a,&b,&c);
       
        d=&a;
        e=&b;
        f=&c;
       
        if(a>b)
        {
                g=d;为什么这里不加*
                d=e;
                e=g;
       }
       
       if(a>c)
       {
               g=d;
               d=f;
               f=g;
       }
       
       if(b>c)
       {
                g=e;
               e=f;
               f=g;
       }
       
       printf("%d<=%d<=%d\n",*d,*e,*f);
       
       return 0;
}

风过无痕丶 发表于 2018-12-10 10:58:18

因为它们之间互换的是地址,int *不等价于 int

TyCk 发表于 2018-12-10 12:06:00

g和d都是int *类型的,同为int指针。
*g和*d都是int 数值,也就是整数。
赋值的话,应当同一类型进行赋值,换句话说,g是指针,d是指针,*d是整数。

cc1003894 发表于 2018-12-10 13:27:23

d和g都被定义成指针了,d=g是同类型赋值(指向),不加*

我饿了我要吃肉 发表于 2018-12-10 17:05:08

d与g同为指向整型的指针变量,相同的变量类型间可以直接赋值
页: [1]
查看完整版本: 指针问题,