Kezdőoldal » Számítástechnika » Programozás » Van különbség a két feltétel...

2105as kérdése:

Van különbség a két feltétel megadás között? For- ciklus meddig fut. (c#)

Figyelt kérdés

(Az esetleges elírásért bocs, jegyzettömben írtam )


c#


{

Console.Write("Kérem add meg a tömb elem számát : ");

int szam = convert.Toint32 (Console.ReadLine());

int [] tomb = new int [szam]


for (int i = 0; i < szam VAGY tomb.Lenght ;i++)

{


}


}

Most addig fut még i< szam VAGY másképp i<tomb.Lenght

ez a kettő között van valami eltérés ??


2017. febr. 16. 20:42
1 2
 11/14 anonim ***** válasza:
Mert tipikus Java-s, PHP-s, meg hasonló vérpistikék, és fingjuk nincs a .Netről.
2017. febr. 17. 15:52
Hasznos számodra ez a válasz?
 12/14 anonim ***** válasza:

" A .NET JIT compilere nem fog index checkeket végezni, ha a teljes tömbön mész végig (for (i=0;i<tomb.Length; i++)), mert tudja, hogy ebben az esetben felesleges, úgysem lesz exception. Ezért gyorsabb, ha így van írva."


Ezzel nem mész végig a tömbön, abból hogy a ciklusok számát a tomb.Lenght hez kötöd nem következik az hogy bármit is csinálsz a tömbbel ezen túl. De ha netán mégis végigszaladnál a tömbön akkor sem egyértelmű hogy változatlan marad a mérete(mi akadályoz abban hogy a cikluson belül hozzáadj\törölj egy elemet? Ha nem ellenőrzi a tömb méretét minden iteráció elején(vagy végén) akkor ez nagyon könnyen exceptionhöz vezetne). Ha nem ellenőrizi akkor kéne neki.

2017. febr. 18. 01:16
Hasznos számodra ez a válasz?
 13/14 anonim ***** válasza:
A szam változód értéke módosulhat így biztonsági okokból a Length-et javasolnám.
2017. febr. 18. 01:34
Hasznos számodra ez a válasz?
 14/14 anonim ***** válasza:

#12: A tömb méretét nem lehet változtatni. Listáról nem állítottam, hogy ugyanúgy gyorsabb mint tömbre ez a speciális eset.

És való igaz, hogy nem elég a ciklusok számát nézni, valószínűleg a .NET JIT compilere azt nézni, hogy a ciklus 0-tol tomb.Lengthig megy, és ez a ciklus változó módosítás nélkül van használva a tömb indexelésénél.


[link]

Bounds-check removal cases

2017. febr. 18. 12:09
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!