Wyrażenie logiczne przekazywane do funkcji

0

Czy jeśli jeden z argumentów funkcji jest typu bool, to czy wyrażenie logiczne przekazane do tej funkcji zostanie od razu zinterpretowane jako jego wartość (true lub false), czy raczej funkcja przyjmuje je "w całości" i dopiero podczas wykonywania tej funkcji zostaje oceniona jego wartość logiczna? Przykładowo, wyobraźmy sobie taki prosty kod:

void funkcja(int n, bool yn)
{
	...
}

int main()
{
	int zm = Console.Readline();
	funkcja(zm, (zm>5))
}
 

Jeśli funkcja() pobrałaby "(zm>5)", a nie po prostu wartość tego wyrażenia to by wyskoczył błąd, bo funkcja() nie zna zmiennej zm. Czy zatem taki kod by działał, czy też raczej przed wywołaniem funkcji trzeba by dodać coś w stylu "bool b = (zm>5)" i dopiero b przekazać do funkcji?

1

Zostanie najpierw obliczona wartość wyrażenia, a dopiero potem wysłana do funkcji w postaci true/false ( Wewnątrz funkcji niektóre zmienne użyte w wyrażeniu mogłyby być niedostępne ).

1 użytkowników online, w tym zalogowanych: 0, gości: 1