Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

C# probléma

357
Valaki el tudná magyarázni a végül kapott eredményt? (1,13,3)

using System;

public class Program
{
public static void Main()
{
int[] arr = { 1, 2, 3 };
int i = 1;
arr[i++] = arr[i] + 10;
Console.WriteLine(String.Join(",", arr));
}
}

Elsősorban ez a sor érdekelne
arr[i++] = arr[i] + 10;
Jelenleg 1 felhasználó nézi ezt a kérdést.
c#
0
Középiskola / Informatika

Válaszok

1
Inicializáljuk a tömböt az alábbi értékekkel:
0. indexen: 1
1. indexen: 2
2. indexen: 3
i értékét beállítjuk 1-re
az arr tömb 1. indexen lévő értékét beállítjuk (mert i++ még 1-gyel tér vissza, ha ++i lenne, az 2 lenne). -> tehát beálltjuk az arr tömb 2. indexén lévő értékre (mert ekkor i értéke már 2) + 10-re, ami 3 + 10 = 13.

Tehát az arr tömb értékei:
0. indexen: 1
1. indexen: 13
2. indexen: 3

Ezután pedig kiíratjuk ezeket, vesszővel összefűzve.

Ennek a sornak:
arr[i++] = arr[i] + 10;
A lényege, hogy az arr[i++]-nál, megnöveljük i értékét 1-gyel, viszont a kiértékelésnél még i eredeti értékét kell venni, az 1-et, ezért igazából arr[1] = .
Viszont ezután i értéke 2 lesz, mivel inkrementáltuk, így:
arr[1] = arr[2] + 10, ami esetünkben arr[1] = 3 + 10 = 13
Módosítva: 4 éve
0