我一直在想,如果我可以在void函數和main函數中使用相同的參數名稱。在void函數和主程序中使用相同的參數名稱
當我在void函數(int x,int y等)中使用不同名稱的參數並在程序本身中更改變量的名稱時,程序運行相同,但我不知道我是否正在處理原始變量或者只是他們的副本。
例如,如果我指定fill()函數內的整數b(一個不同的值),它將不會全局更改其值。我怎樣才能將新值賦給table和full()內的循環,並且它將在fill()和main()函數中被分配的新值可見?
void fill(int a, int b, int n, int * tab) {
for (int i=0; i<n; i++) {
tab[i] = a+rand()%(b-a+1);
std::cout << tab[i] << " ";
}
}
int main() {
srand(static_cast<unsigned int>(time(NULL)));
int tab[999];
int n = 999;
int a = 4;
int b = 10;
fill(a, b, n, tab);
return 0;
}
這是我的第一篇文章,我試圖尋找在本論壇我的問題,但沒有人幫助我了。
是的,你可以用同樣的在不同塊的變量名(即{})。此外,它不是一個論壇 – Incomputable
你可能會感興趣http://en.cppreference.com/w/cpp/language/scope – infixed