程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言問題-c語言執行的結果是隨機數是怎麼回事?

c語言問題-c語言執行的結果是隨機數是怎麼回事?

編輯:編程綜合問答
c語言執行的結果是隨機數是怎麼回事?

#include
#include
struct stu
{
int num;
char name[2];
int Chinese;
int English;
int Maths;
int sum;
};
void main()
{
struct stu student[4]={{1,"ab",10,20,30},{2,"cd",40,50,60},{3,"ef",70,80,90}};
int i;
for(i=0;i<3;i++)
student[i].sum=student[i].Chinese+student[i].Maths+student[i].English;
for(i=0;i<3;i++)
if(student[3].sum<student[i].sum)
{ student[3].sum=student[i].sum;
strcpy(student[3].name,student[i].name);
}
printf("%s\n",student[3].name);
}

最佳回答:


應該是char name[2]的問題。
在C語言中字符串是以NULL(\0)結尾的,也就是說要多出一個字節,用來保存NULL。
所以如果name[2]賦了"ab",那麼NULL就沒有空間存了。所以打印出的name不確定。

測試一下

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved