2013-11-24 62 views
0

有誰知道一種方法可以更改本地定義的變量值嗎?更改本地範圍中的值

#include <stdio.h> 

int change(int x, int y); 

int main() 
{ 
    int x = 10; 
    int y = 20; 

    change(x,y); 
    printf("x:%d y:%d\n", x, y); 
} 

int change(int x, int y) 
{ 
    x = 20; 
    y = 30; 

    return(x); 
    return(y); 
} 

我希望x和y在main()中打印20和30。 我試圖返回值,但沒有奏效。是否有另一種方法可以使用?我在想指針,但我不知道從哪裏開始。

回答

4

使用指針:

void change(int *x, int *y) 
{ 
    *x = 20; 
    *y = 30; 
} 

,並調用的功能等:change(&x, &y);爲了提高可讀性,你可能要因爲它們是相同的類型x不超過xychange參數來使用不同的名稱和y變量在main中聲明。

0

一些選項:

1)由refernce傳遞:int change(int &x, int &y);

2)返回的數組,並改變電流值:

int* temp = new int[2]; 
temp[0]=x+10; 
temp[1]=y+10; 
return temp; 

3)返回到直接的printf:

printf("x:%d y:%d\n", change(x,y)[0], change(x,y)[1]); 
+2

標籤是C不是C++ –

0

是的,這很容易 只是通過參數S按參考變化函數 所以不是 INT變化(INT的x,int y)對> INT變化(INT & X,整數& Y) ,它會工作得很好

+1

標籤是C,而不是C++ –