[ sammo @ 21.11.2007. 21:33 ] @
EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:

[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]

Code:

#include<iostream>
using namespace std;
int main() {
int arr[5] = {3,4};
int i=0;
for (; arr[i]; i=i+1); //!Kako se posmatra ovaj dio u For petlji prije prve ";",pa ovo- arr[i]; i sta se dogadja sa i=i+1
cout << i;
}

rezultat 2

Code:

#include<iostream>
using namespace std;
int main() {
char str[] = "C++";   kako se posmatra ovo za koliko znakova za razliku od istog u sledecem code,
cout << sizeof(str)/sizeof(char);
}

rezultat 4

Code:

#include<iostream>
using namespace std;
int main() {
char str[] = {'C','+','+'};
cout << sizeof(str)/sizeof(char);
}

rezultat 3

Ako bi mi neko jos mogao malo da naznaci na neke vazne pojedinosti.
Hvala


[Ovu poruku je menjao X Files dana 22.11.2007. u 07:23 GMT+1]
[ glorius @ 21.11.2007. 23:23 ] @
Ovo pod jedan ne daje rezultat 2 nego vrti petlju beskonacno. Iskreno nisam se susreo do sada sa ovom konstrukcijom....

Razlika izmedju 2. i 3. primera....

Kada definises da je:

char a[] = "C++";

ovaj kod mozes i da napises kao sto je napisano u trecem primeru.

Jedina 'fora' kod prvog primera je to sto C/C++ dodaje na kraju stringa tzv. karakter za terminaciju '\0' koji signalizira kompajleru ( a i ostalim funkcijama ) da se string tu zavrsava.

Tako da, drugi primer bi mogao da napises slicno kao treci:

char str[] = { 'C', '+', '+', '\0' };

Zbog toga je sizeof(str)/sizeof(char) (inace, duzina stringa) 4, a u donjem, naravno, 3 jer nema terminirajuceg karaktera...

[ perun_ @ 22.11.2007. 02:00 ] @
Tacno! Ovaj prvi kod vrti beskonacnu petlju. Ubedjen sam da je trebalo da stoji:
Code:

#include<iostream>
using namespace std;
int main() {
   int arr[5] = {3,4};
   int i=0;
   for (; arr[i]; i=i+1); //!Kako se posmatra ovaj dio u For petlji prije prve ";",pa ovo- arr; i sta se dogadja sa i=i+1
   cout << i;
}


Ovako rezultat svakako jeste 2. Evo i znacenja ovoga:
Petlja vrti dokle god je element niza razlicit od nule, i samo uveca brojac i za jedan. U nasem slucaju kada je i=2 petlja staje. Probaj da stavis recimo
Code:
int arr[5]={3,0};
i rezultat ce biti 1. Dakle, ovaj kod bi trebalo da ispisuje koliko elemenata niza celih brojeva postoji pre nule. Verovatno bi bilo znatno razumljivije da je napisano ovako:
Code:

#include<iostream>
using namespace std;
int main() 
{
   int arr[5] = {3,4};
   int i=0;
   while (arr[i]!=0) 
      i++;   
   cout << i;
}

?????
[ glorius @ 22.11.2007. 02:27 ] @
Pa da! Verovatno je to... Mislim da se to moze koristiti sa merenje duzine stringa dok ne stigne do null karaktera...
Mozda je to i bio cilj...

Code:


char a[] = "Homer";

int i = 0;

for(;a[i];i++)
;

cout << i;



Jbt, ceo dan se srecem sa nekim cudnim konstrukcijama :)

Pogledaj ovo:

http://www.elitesecurity.org/t...sada-ne-vidoh-ovu-konstrukciju
[ osmania @ 22.11.2007. 14:59 ] @
ja ne znam summo sta vi u opste radite na vjezbama ako ista radite i nemam pojma kod koga si na vjezbama. U svakom slucaju ovo sve ti Wanek objasni u detalje priej svake vjeze a mozes da ga pitas beksonacno...
[ sammo @ 22.11.2007. 15:14 ] @
reci mi molim te sta treba da znaci sad ovaj tvoj komentar,ako imas odgovor i ako mozes i hoces objasniti i ucini to a ako ne onda se suzdrzi ovakvih komentara,stotinu razloga da se nije razumjelo.
Vjerujem da mislis "glupo pitanje" ali ti samo mogu reci da nepostoje glupa pitanja vec samo glupi odgovori.
[ osmania @ 22.11.2007. 18:37 ] @
na vjezbama moras da budes prema tome??? ne znam sta je sporno.
U svakom slucaju pitaj slobodno ne znam da li imas sva pitanja od 1999 godine ima ih 8 godina * 10 pitanja = puno toga ima. I sretno sutra sa funkcijama, jer ponovo nizovi su iduci petak...