Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 kwi 2024, o 12:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 11 cze 2020, o 21:47 
Offline
Użytkownik

Dołączył(a): 07 lut 2015
Posty: 156
Pomógł: 2

Witam,
tak żeby rozruszać towarzystwo, mam pytanie na które nie umiem odpowiedzieć:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


następnie:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

oraz:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Pytanie, dlaczego tylko warunek if z strlen działa, pozostałe nie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2020, o 22:11 
Offline
Użytkownik

Dołączył(a): 05 wrz 2017
Posty: 169
Pomógł: 31

Taki kod też zadziała, myślę że to jednocześnie tłumaczy o co chodzi (chyba że jest już na tyle późno że mi się coś pokićkało) :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2020, o 22:33 
Offline
Użytkownik

Dołączył(a): 07 lut 2015
Posty: 156
Pomógł: 2

Abel11 brawo, brawisimo.

Sposób 1 i 3 OK.
Sposób 2 nie działa.

Nie pomyślałem, aby nawiasy kwadratowe, bo mamy do czynienia z tablicą, dać na końcu, a nie po wskaźniku na tablicę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2020, o 22:45 
Offline
Użytkownik

Dołączył(a): 05 wrz 2017
Posty: 169
Pomógł: 31

Przepraszam moje gapiostwo w 2 przykładzie zapomniałem o gwiazdce miało być
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Po prostu najpierw trzeba z wskaźnika na strukturę wybrać tablicę i dopiero wtedy wybierać element tablicy, pewnie z rozpędu zapomniałeś że to struktura i poleciałeś jak z tablicami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2020, o 22:47 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27225
Lokalizacja: Szczecin
Pomógł: 1041

Nef.ID napisał(a):
Nie pomyślałem, aby nawiasy kwadratowe

Zapomniałeś przede wszystkim o strzałce "->" aby odwoływać się do pól struktury przez wskaźnik

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2020, o 23:43 
Offline
Użytkownik

Dołączył(a): 07 lut 2015
Posty: 156
Pomógł: 2

Tylko teraz myślę, że nie o to mi chodziło.
Co to jest np. wsk->tel[0] czy (*wsk).tel[0] ?
Czy to nie pokazuje na pierwszy element tablicy lista ( lista[0] ) i pierwszy znak w tablicy tel ( tel[0] )?

Przypomnę, wsk pokazuje u mnie na lista[10].

Ja chciałem sprawdzać po kolei, czy lista[0].tel ==0, lista[1].tel ==0 itd.

A jak sprawdzić czy czwarty element tablicy lista np. lista[3] ma tel[0] zero ?
Chyba jednak nie tym warunkiem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 2 minutach ]

W podanym przeze mnie z początku przykładzie było wsk[0], ale w domyśle chodziło o wsk[1], wsk[2] itd.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2020, o 08:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2019
Posty: 147
Pomógł: 37

Nef.ID napisał(a):
Pytanie, dlaczego tylko warunek if z strlen działa, pozostałe nie?

Ponieważ do porównania bierzesz wskaźnik na zmienną zamiast wartości zmiennej.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Cytuj:
A jak sprawdzić czy czwarty element tablicy lista np. lista[3] ma tel[0] zero ?


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Think for yourself and question authority.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2020, o 14:44 
Offline
Użytkownik

Dołączył(a): 05 wrz 2017
Posty: 169
Pomógł: 31

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W taki sposób mam nadzieje będzie to nieco czytelniejsze.
Jeśli za wsk dasz nawiasy klamrowe to poinformujesz kompilator, że adres pierwszego elementu tablicy (w zmiennej wsk) chcesz powiększyć o jakiś offset, dlatego nie dajesz tu strzałki.

Bardzo pomocne do nauki takich zagadnień jak wskaźniki, callbacki, struktury i tablice może być zainstalowanie np. MPLABX IDE, albo jakiegokolwiek innego symulatora który pozwoli na obserwacje zmiennych i komórek pamięci. Tworzysz projekt, wybierasz prace na symulatorze, bierzesz BB w garść od strony 145 masz tablice dalej wskaźniki i możesz zobaczyć jak się zmieniają zmienne w zależności co jak pozmieniasz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2020, o 21:05 
Offline
Użytkownik

Dołączył(a): 07 lut 2015
Posty: 156
Pomógł: 2

Wiecie co, zmylił mnie właściwie zapis "tablicowy" wskaźników i przez to zapomniałem o tej gwiazdce.

Co w sumie jest istotne, bo raz mamy wskaźnik, a raz wartość pokazywaną wskaźnikiem.

Pozdrowienia.

------------------------ [ Dodano po: 42 minutach ]

A kompilator się nie obrażał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 cze 2020, o 06:31 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27225
Lokalizacja: Szczecin
Pomógł: 1041

bo nie ma żadnej różnicy jak traktujesz wskaźnik. Raz może on być wskaźnikiem a raz tablicą ;) że tak powiem

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


można z niego korzystać i tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


ale też i tak

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wszystko zależy jak wygodniej w kodzie

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO