Comparsa di caratteri non voluti

di Anonimizzato21577 il
33 risposte

33 Risposte - Pagina 2

  • Certo che programmare in C senza il K&R è come per un prete dire messa senza bibbia...

    Esistono i messali
    Ed esistono volumi come il Deitel
    Ma la "Parola" viene da li
  • JackieJack1207 ha scritto:


    Questa sintassi non l'avevo mai vista. Mi sono spiegato?
    E probabilmente ti stupirà anche il risultato di [CODE] printf("Hello World%c", 2["Hi!"]); Il fatto è che l’operatore [] viene convertito in *(base_ptr + index). L’ordine non ha quindi alcuna importanza, oltre al fatto che index deve essere un semplice rvalue e i++ lo è.
  • In effetti questo stupisce ancora anche me, che lo so
    Ma lo sento controintuitivo
  • _Achille ha scritto:


    JackieJack1207 ha scritto:


    Questa sintassi non l'avevo mai vista. Mi sono spiegato?
    E probabilmente ti stupirà anche il risultato di [CODE] printf("Hello World%c", 2["Hi!"]); Il fatto è che l’operatore [] viene convertito in *(base_ptr + index). L’ordine non ha quindi alcuna importanza, oltre al fatto che index deve essere un semplice rvalue e i++ lo è.
    Si, infatti è una sintassi che non avevo mai visto! Il risultato è "Hello world!"; a me "Hi!" non compare in output... Dunque è il libro di Kim N. King??
  • JackieJack1207 ha scritto:


    Mi sono spiegato?
    Molto male. Sicuramente non si dice che c'è una istruzione in un array.

    E quella sintassi è parte delle basi del C. Da dove lo studiate?
  • StandardOil ha scritto:


    In effetti questo stupisce ancora anche me, che lo so
    Ma lo sento controintuitivo
    Il C affonda le basi nell'assembly ... dove certe cose sono elementari ...
  • JackieJack1207 ha scritto:


    Dunque è il libro di Kim N. King??
    Sai chi ha "inventato" il C? Queste cose non le studiate?

    da wiki ... "In 1978, Brian Kernighan and Dennis Ritchie published the first edition of The C Programming Language. This book, known to C programmers as K&R, served for many years as an informal specification of the language. "
  • oregon ha scritto:


    JackieJack1207 ha scritto:


    Dunque è il libro di Kim N. King??
    Sai chi ha "inventato" il C? Queste cose non le studiate?

    da wiki ... "In 1978, Brian Kernighan and Dennis Ritchie published the first edition of The C Programming Language. This book, known to C programmers as K&R, served for many years as an informal specification of the language. "
    Secondo te è questo al link sotto?
    https://www.pearson.it/opera/pearson/0-6610-il_linguaggio_c
  • Secondo me? Secondo tutti i programmatori C ... certo che è quello..

    Oh quel libron non fa miracoli...
  • Una nuova ristampa della 2° edizione? goloso, la voglio
    ho la seconda edizione stampata da Jackson
    quella stampata da Pearson con la copertina che sembra quella della jackson
    e adesso comprerò questa, che non conoscevo....

    Ma invece, seriamente, ma sul Deitel, che tanto mi hanno raccomandato mancano gli operatori di incremento e decremento postfissi e prefissi?
  • StandardOil ha scritto:


    Una nuova ristampa della 2° edizione? goloso, la voglio
    ho la seconda edizione stampata da Jackson
    quella stampata da Pearson con la copertina che sembra quella della jackson
    e adesso comprerò questa, che non conoscevo....

    Ma invece, seriamente, ma sul Deitel, che tanto mi hanno raccomandato mancano gli operatori di incremento e decremento postfissi e prefissi?
    No, ci sono, ma non combinati in quel modo! Non sono arrivato ancora alla fine del libro ma finora così scritti
    a[i++] = b[j++];
    non li ho mai visti. Ok, Dai, lo comprerò anche io questo famoso K&K
  • Credo che in nessun libro ti dicano cosa puoi mettere dentro le []
    Sta al programmatore capire quello che ha studiato e mettere insieme i vari pezzi.

    Dubito in un libro di trovare cose simili a queste [CODE] int x; printf("%c", ".,?!"[printf("Hi"), scanf("%d", &x), x]); Una volta capito che [] vuole un rvalue intero si capisce cosa si può mettere dentro.
  • Quello magari no

    Ma scorrere un array con un ++ è il minimo
  • K&R

    e dai ... almeno le iniziali corrette!
  • In C si possono fare cose tipo questa:
    main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
    (Dall'International Obfuscated C-Code Contest, anno 1987, categoria "Miglior programma su una sola riga")
Devi accedere o registrarti per scrivere nel forum
33 risposte