implement a SwapAndAdd function exam questions
以下的 C 程式碼需要實作一個 SwapAndAdd function。SwapAndAdd()要達成 的功能是交換兩個變數,然後建立一個新的整數變數,將兩個變數相加存在該變數 之後,回傳新的變數位址讓呼叫端來使用。以下的 main()顯示如何使用這個 SwapAndAdd() function。 int main() { int x, y, *result ; x = 100 ; y = 50 ; result= SwapAndAdd(......); // 請填寫參數 x,y 應如何傳遞來使用 SwapAndAdd printf(“%d %d %d”, x, y,(*result)); } 在這個 main()中,我們會將 x,y 變數作為參數傳到 SwapAndAdd()。如果 SwapAndAdd()實作正確,這個 main()會印出 50 100 150 請以 C 語言完成 SwapAndAdd()的程式碼,並且將 main()當中的呼叫參數填入。(25 分 我的回答 函式使用堆疊動態變數(stack dynamic variable),會自動分配或釋放其區域變數記憶體。所以不能使用堆疊動態變數來儲存運算結果,可以用靜態變數(static variable)或者外顯堆積動態變數(explicit heap dynamic variable)。 下列程式碼運行在 Online C Compiler - online editor (onlinegdb.com) (一)使用靜態變數 靜態變數的特性為程式預先指派變數記憶體,在程式結束後才釋放記憶體。優點是可以在函式之間保留狀態,缺點是可能占用記憶體。 #include <stdio.h> int* SwapAndAdd(int * x, int* y){ int t=0; t=*x; *x=*y; *y=t; static int r=0; r=*x+*y; return &r; } int main() { int x, y, *result ; x = 100 ; y = 50 ...