Jak działają łańcuchy i tablice znaków w C?
Żadne przewodniki, których widziałem, nie wyjaśniają tego zbyt dobrze.
To znaczy, możesz przydzielić pamięć dlachar*
lub piszchar[25]
zamiast? Co za różnica? A potem są literały, których nie można manipulować? Co jeśli chcesz przypisać stały ciąg do zmiennej? Lubić,stringVariable = "thisIsALiteral"
, jak potem manipulujesz tym?
Czy ktoś może tu ustanowić rekord? A w ostatnim przypadku, z literałem, w jaki sposób zadbacie o unieważnienie? Uważam to za bardzo mylące.
EDYCJA: Prawdziwym problemem wydaje się być to, że jak to rozumiem, musisz żonglować tymi różnymi konstrukcjami, aby osiągnąć nawet proste rzeczy. Tylko na przykładchar *
może być przekazany jako argument lub wartość zwracana, ale tylkochar[]
można przypisać literał i zmodyfikować. Czuję, że to oczywiste, że często / zawsze musimy być w stanie robić obie rzeczy, i właśnie tam jest moja pułapka.