779469415 发表于 2018-12-28 13:07:02

关于结构体的一个问题

如图,不知道为什么,修改一个值后,下一项的值就会变成0,求解。。。。

附上源代码:

struct rec
        {                                       
                short score;
        }text;


                text.score = 4;
                text.score = 2;
                text.score = 3;

                printf("输入三个值后的结果\n\n");
                printf("%d\n",text.score);
                printf("%d\n",text.score);
                printf("%d\n",text.score);

                //-------------------------------
       
                printf("********************************************************************\n\n");
                       
                scanf("%d",&text.score);

                printf("改变score后的结果\n\n");
                printf("%d   \n",text.score);
                printf("%d   \n",text.score);               
                printf("%d   \n",text.score);




运行结果:

输入三个值后的结果

4
2
3
********************************************************************

1
改变score后的结果

1
0
3
Press any key to continue


thaong 发表于 2018-12-28 14:21:29

把short改为int形式就可以了

rencaixiaomeng 发表于 2018-12-28 15:11:43

%d是输入int型的,int一般占用字节比short多,所以就把数组的下一位给占用了,输入short型要用%hd

779469415 发表于 2018-12-28 18:36:24

thaong 发表于 2018-12-28 14:21
把short改为int形式就可以了

可以了,谢谢

779469415 发表于 2018-12-28 18:38:21

rencaixiaomeng 发表于 2018-12-28 15:11
%d是输入int型的,int一般占用字节比short多,所以就把数组的下一位给占用了,输入short型要用%hd

可以了,谢谢

千锦襄 发表于 2018-12-28 19:04:17

不懂
页: [1]
查看完整版本: 关于结构体的一个问题