Ahoj,
v jazyce C uz 'programuji' nejaky ten patek, a tak me celkem zajima, jak kompilator vyhodnocuje ci prevadi promenne. Jako spravny c-programator uz vidim vsude jen pointery, pointery, pointery na pointery a celkem mi to leze i na hlavu (coz je mozna dobre).
Kdyz nadefinujeme promennou i (integer a na libovolne adrese, tedkom je to celkem jedno), do ktere pak vlozime hodnotu 5. Udelame to jednoduse i=5, ale jak to vidi kompilator? Vim, ze pointer nebo pole (napr. pole[5]) deklarovanim (pole) ziskame jen adresu pocatecniho prvku (&pole[0]). Kdyz bychom chteli na danou adresu vlozim hodnotu 8, museli bychom udelat *pole=8.
A tak se ptam, jak tedy funguje jen samotna promenna (ne pole ani pointer)? Prepise misto i=5 kompilator *(&i)=5 (vloz na adresu v pameti napr. 0x54f2 hodnotu 5) ? Nebo jak? Jak takoveto promenne obecne funguji? Drive me to vubec nenapadlo (prislo mi to matematicky moc trivialni - bohuzel matematika nealokuje promenne :] ), ale ted uz me to celkem zajima. Kdyby mi to nekdo vysvetlil, tak bych mu byl moc vdecny. Preji hezke vanocni svatky vsem a dekuji za odpovedi.