To znaczy powiem tak mniej więcej rozumiem, no ale nie rozumiem...
Przecież w pętli while w środku(nawiasach) powinno być jakieś wyrażenie logiczne którego wartość powina być prawda lub fałsz, a dopiero później instrukcje.
Czy ma to jakiś związek że tu są tablice?
Ok dobra chyba zakapowałem chodzi o to że tam jest ''='' a nie ''=='' i po tym można rozróżnić. Dzięki wszystkim.
[c][gcc] kompilacja i uruchomienie programu
- Szmitas
- Zakręcona Traszka
- Posty: 572
- Rejestracja: 28 lis 2006, 17:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.04
- Środowisko graficzne: Unity
- Architektura: x86
- Lokalizacja: Luboń
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
(to = from) == '\0'
Masz wyrażenie logiczne - póki dane są przepisywane wartość wyrażenia jest 1, trafia na null i zmienia wartość na 0, pętla się kończy.
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
-
- Piegowaty Guziec
- Posty: 26
- Rejestracja: 07 paź 2010, 21:04
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
Ok już mi wszystko z tym gra.
Mam jeszcze fragment
int i = 0;
while( --argc )
v[i++] = atof( argv[i+1]);
No i wyświetla się warning: operation on 'i' may be undefined.
Ale program działa jak dla mnie poprawnie, więc mogę zignorować to ostrzeżenie? Jak tak napisze na egzaminie to będzie dobrze? Czy można to zapisać jakoś inaczej z użyciem i?
Mam jeszcze fragment
int i = 0;
while( --argc )
v[i++] = atof( argv[i+1]);
No i wyświetla się warning: operation on 'i' may be undefined.
Ale program działa jak dla mnie poprawnie, więc mogę zignorować to ostrzeżenie? Jak tak napisze na egzaminie to będzie dobrze? Czy można to zapisać jakoś inaczej z użyciem i?
-
- Zakręcona Traszka
- Posty: 585
- Rejestracja: 20 kwie 2008, 04:21
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
Odp: [c][gcc] kompilacja i uruchomienie programu
użycie operatora post inkrementacji w tym kontekście jest ryzykowne. Nie ma gwarancji, że kompilator zawsze wygeneruje kod który będzie najpierw robił inkrementację a dopiero później użył nowej wartości aby odwołać się do tablicy.. a może chcesz odwołać się do tablicy a potem zwiększyć i o 1? Lepiej zapisać to w ten sposób:
(zakładam, że chcesz skopiować zawartość argv do v z pominięciem pierwszego elementu.
Kod: Zaznacz cały
int i;
for (i = 1; i < argc; i++) {
v[i-1] = atof(argv[i]);
}
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości