Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Adres stałej znakowej oraz stałej łańcuchowej "null"

Ostatnio zmodyfikowano 2016-09-14 16:56
Autor Wiadomość
Euvarios
Temat założony przez niniejszego użytkownika
[C++] Adres stałej znakowej oraz stałej łańcuchowej "null"
» 2016-09-14 16:51:29
Witam, piszę tutaj ponieważ nie jestem w stanie zrozumieć dość prostego zagadnienia. Bawiłem się trochę adresami stałych łańcuchowych i ich użyciami w instrukcjach (bez konkretnego celu). Mam łącznie dwa pytania:
1. Czy dobrze rozumiem działanie instrukcji: if ("dowolny tekst") [...];
Stała łańcuchowa w rzeczywistości jest adresem więc domyślnie maszyna zinterpretuje to jako np. if (0x47F023) [...]; Jako, że jest to liczba niebędąca zerem wyrażenie wynosić będzie "true"? W takim wypadku wstawienie tam stałej znakowej '\0', której adres wynosi 0 zinterpretowane zostanie jako "false"?
2. Teraz główny powód, dla którego wstawiam ten temat. Czemu stała łańcuchowa "" nie zostanie zinterpretowana również jako false skoro jedyny znak jaki zawiera to domyślnie wstawiane tam null? Czemu tworzone jest dla niej osobny adres skoro mógłby odnosić się do adresu 0 tak jak to jest chyba w Java.
P-151726
pekfos
» 2016-09-14 16:56:47
Jako, że jest to liczba niebędąca zerem wyrażenie wynosić będzie "true"?
Tak.

W takim wypadku wstawienie tam stałej znakowej '\0', której adres wynosi 0 zinterpretowane zostanie jako "false"?
Stała znakowa to po prostu liczba. Nie ma adresu.

Czemu stała łańcuchowa "" nie zostanie zinterpretowana również jako false skoro jedyny znak jaki zawiera to domyślnie wstawiane tam null?
Bo nie liczy się treść łańcucha, lecz jego niezerowy adres.

Czemu tworzone jest dla niej osobny adres skoro mógłby odnosić się do adresu 0 tak jak to jest chyba w Java.
Pusty łańcuch to nie to samo co brak łańcucha.
P-151727
« 1 »
  Strona 1 z 1