为了账号安全,请及时绑定邮箱和手机立即绑定

输出结果第二个数报错

为什么输出的是90,25775849394

而不是90,98呀?


#include<stdio.h>


struct Student

{

    int math;

    int English;

};


int main()

{

    struct Student s[50];

    s[49].math=90;

    s[49].English=98;

    printf("%d,%d\n",s[49]);

    return 0;

}


正在回答

1 回答

//你的输出错误了,s[49]是Student这个结构体,而不是里面数据的值
//第一个输出结果是90,是因为取址在这个结构体的开头,也就是s[49].math这个4字节内存的地址
//虽然这可以获取math的数值但是你应该使用s[49].math来保证代码鲁棒性更高(不容易出bug)
//你第一个%d对应的是math的值,第二次%d却没有对应,所以第二次输出也就是垃圾数据了(毫无意义的一串数据)
//你应该这样,前一个%d对应s[49].math,后一个对应s[49].English
printf("%d,%d\n",s[49].math,s[49].English);


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

输出结果第二个数报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信