Wpis z mikrobloga

@biauekWladcaJajek: Nah, kompilator powinien tutaj sam to ogarnąć i zastąpić całe to wywołanie jednym wypisaniem na ekran bez potrzeby alokowania czegokolwiek czy nawet parsowania szablonu w printf.
  • Odpowiedz
pisałem w nim jak jeszcze na chleb mówiłeś "bep"

jeśli ktoś ma komukolwiek coś tutaj tłumaczyć to tylko ja tobie :)


@biauekWladcaJajek: Widzę, że argumentum ad personam bardzo szybko zakończył tę dyskusję ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Hauleth: akurat w C to jest semantycznie dokładnie to samo. Tablica to jest po prostu zwykły wskaźnik na jej pierwszy element, a zapis tablicowy z nawiasami to zwykły lukier składniowy. Wiesz że możesz napisać 1[str] i to oznacza drugi element tablicy wskazywanej przez str?
  • Odpowiedz
Tablica to jest po prostu zwykły wskaźnik na jej pierwszy element


@Krolik: No właśnie nie. Tablica może być automatycznie rzutowana na wskaźnik, ale sama z siebie wskaźnikiem nie jest. Sprawdź sobie sizeof("") vs sizeof(char *) i zobacz różnicę.

Wiesz że możesz napisać 1[str] i to oznacza drugi element tablicy wskazywanej przez str?


Wiem, ale to nie zmienia faktu wspomnianego powyżej.
  • Odpowiedz
@Hauleth: Ok, masz rację. Jednak w ww przykładzie jak napiszesz "1" + "1" te tablice właśnie są automatycznie zrzutowane na wskaźniki i dodawanie zostanie wykonane na wskaźnikach. Tablica jest konceptem istniejącym tylko w trakcie sprawdzania typów, właśnie po to aby takie rzeczy jak sizeof działały. Różnica jest serio bardzo kosmetyczna, bo w C każdy wskaźnik nie-void działa jak tablica, i każda tablica działa w miejscu gdzie potrzebujesz wskaźnika.
  • Odpowiedz