Najlepsze pytania
Chronologia
Czat
Perspektywa

Literał znakowy

Z Wikipedii, wolnej encyklopedii

Remove ads

Literał znakowyliterał reprezentujący w kodzie źródłowym konkretną wartość typu znakowego.

Reprezentacja literału znakowego

Literał znakowy to określona jednostka leksykalna danego języka programowania, która reprezentuje wartość wybraną z dostępnego zestawu znaków. To jakie literały znakowe mogą zostać użyte, a więc jaki jest dostępny zestaw znaków, zależy od systemu komputerowego i ustawień w nim zawartych. Przykładowymi zestawami znaków są ASCII, EBCDIC. Obecnie we współczesnych systemach dostępne są różne zestawy (np. Unicode) zawierające m.in. znaki narodowe i różne symbole, np. matematyczne.

Literał znakowy może być zapisany w kodzie źródłowym:

  • bezpośrednio, za pomocą danego znaku, zazwyczaj ujęty w odpowiednie ograniczniki, np. język C[1][2][3][4]: 'C', '7', '*';
  • za pomocą symbolu, specjalnego kodu (np. kodu sterującego), opisu znaku, np. język C[1][2][3][4]: '\n', '\\'; język Pascal[5][6]: ^N;
  • za pomocą kodu liczbowego, zgodnego z bieżącym zestawem znaków, np. język C[1][2][3][4]: '\47', '\xFC', język Pascal[5][6]: #10, #$A.
Remove ads

Literał znakowy a inne literały

Podsumowanie
Perspektywa

W danym języku programowania zwykle obok literału znakowego występuje literał łańcuchowy, przy czym składnia różnych języków jest tak skonstruowana, że:

  • literał znakowy jest zapisywany inaczej niż literał łańcuchowy, np. język C[1][2][3][4]:
  • literał znakowy i łańcuchowy jest zapisywany tak samo, np. język Pascal[5][6]:
    • literał znakowy w apostrofach, np. 'a',
    • literał łańcuchowy również w apostrofach, np. 'a'.

W tym drugim przypadku interpretacja, czy dana jednostka leksykalna jest literałem znakowym czy łańcuchowym, zależy od kontekstu, w którym dany literał został zapisany i nie da się rozróżnić literału znakowego od jednoznakowego literału łańcuchowego na podstawie samego zapisu literału. Np. w języku Pascal[5][6], w instrukcji przypisania x:='a'; to czy literał 'a' jest literałem znakowym czy łańcuchowym wynika z kontekstu – w tym przypadku typu zmiennej x (np. w Turbo Pascalu[5], jeżeli zmienna x jest typu znakowego to literał 'a' jest literałem znakowym zajmującym 1 bajt; jeżeli x jest typu string to literał 'a' reprezentuje łańcuch zapisany jako: 1 bajt długość łańcucha równa 1 i znak łańcucha – drugi bajt).

Literały znakowe mogą być:

  • traktowane jak dane liczbowe całkowite, o wartości zgodnej z kodem danego znaku według aktualnego zestawu znaków, np. język C[1][2][3][4]: x=5+'a'; natomiast użycie literału znakowego jak łańcucha wymaga odpowiedniego przekształcenia lub konwersji,
  • traktowane jak łańcuchy jednoznakowe, co umożliwia operowanie literałami znakowymi i łańcuchami równocześnie, np. Pascal[5][6], x:='Ala' + '.'; wynika z jednolitego zapisu i kontekstowej interpretacji literału (patrz wyżej); natomiast użycie literału znakowego jak liczby całkowitej wymaga konwersji lub użycia odpowiedniej funkcji.
Remove ads

Literały znakowe w językach programowania

Więcej informacji język programowania, bezpośredni zapis literału znakowego ...

Zobacz też

Przypisy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads