为什么输出的是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;
}
c++是没有print的!你应该是学过python的,python用的是print;而c++用的是cout。
如果想要运行,printf("%d,%d\n",s[49]);应该改为:
cout << s[49];或 cout << s[49] << endl; 或cout << s[49] << " ";
第一个是语句结束没有任何其它内容,第二个是语句结束后换行,最后一个是空格
//你的输出错误了,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);