【C語言教學手冊(四版)-練習題解答】

 第8章

C語言教學手冊(四版)-博客來網址

      8.6  引數傳遞的機制

 

 

29. 如果把 prog8_19 的變數 a 與 b 改以全域變數來撰寫,其它程式碼不更動,則執行結果 是否會和 prog8_19 相同?為什麼?

 

#include <stdio.h>

void add10(int,int);

int a=3,b=5;

int main()

{

   printf("呼叫函數 add10()之前: ");

   printf("a=%d, b=%d\n",a,b);

   add10(a,b);

   printf("呼叫函數 add10()之後: ");

   printf("a=%d, b=%d\n",a,b);

}

void add10(int a,int b)

{

   a=a+10;

   b=b+10;

}

---

add10()之前: a=3, b=5

add10()之後: a=3, b=5

---

 

30. 在 prog8_19 中,當我們呼叫 add10() 之後,在 main() 裡變數 a 與 b 的值並不會被加 10。試修改程式碼,使得當 add10() 被呼叫之後,a 與 b 的值會加 10。

 

#include <stdio.h>

void add10(int,int);

int a=3,b=5;

int main(void)

{

   printf("呼叫函數 add10()之前: ");

   printf("a=%d, b=%d\n",a,b);

   add10(a,b);

   printf("呼叫函數 add10()之後: ");

   printf("a=%d, b=%d\n",a,b);

}

void add10(int x,int y)

{

a=x+10;

b=y+10;

}

 

 

 

 

文章標籤
全站熱搜
創作者介紹

海苔貓Nori 發表在 痞客邦 留言(0) 人氣(971)