fork download
  1. #include <stdio.h>
  2.  
  3. struct student {
  4. int id; /* 学籍番号 */
  5. int eng; /* 英語の成績 */
  6. int math; /* 数学の成績 */
  7. int sci; /* 理科の成績 */
  8. int total; /* 合計点 */
  9. };
  10.  
  11. void sum1(struct student s) {
  12. s.total = s.eng + s.math + s.sci;
  13. }
  14.  
  15. void sum2(struct student *p) {
  16. p->total = p->eng + p->math + p->sci;
  17. }
  18.  
  19. int main() {
  20. struct student s = {17001, 60, 100, 20};
  21.  
  22. sum1(s); /* 値渡し */
  23. printf("%7d %5d %5d %5d %10d\n", s.id, s.eng, s.math, s.sci, s.total);
  24.  
  25. sum2(&s); /* 参照渡し */
  26. printf("%7d %5d %5d %5d %10d\n", s.id, s.eng, s.math, s.sci, s.total);
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
  17001    60   100    20          0
  17001    60   100    20        180