Avatar billede hotmoller Nybegynder
16. december 2003 - 02:31 Der er 1 kommentar og
1 løsning

Hvorfor brug af "indirection operator" her?!

Hej.

Er der nogen der kan forklare hvorfor man bruger indirection operator i nedenstående while.


/* Demonstrates using the gets() return value. */



#include <stdio.h>



/* Declare a character array to hold input, and a pointer. */



char input[257], *ptr;



int main( void )

{

    /* Display instructions. */



    puts("Enter text a line at a time, then press Enter.");

    puts("Enter a blank line when done.");



    /* Loop as long as input is not a blank line. */



    while ( *(ptr = gets(input)) != NULL)

        printf("You entered %s\n", input);



    puts("Thank you and good-bye\n");



    return 0;

}


Hvorfor er det ikke:    while ( (ptr = gets(input)) != NULL)
Avatar billede hotmoller Nybegynder
16. december 2003 - 02:50 #1
hmm, det var da egentlig et ret dumt spørgsmål fra min side.

Hvis ikke havde jeg fået adressen og ikke værdien (røde ører)
Avatar billede bertelbrander Novice
17. december 2003 - 00:31 #2
Det er måske logisk nok at man skal bruge *, men:

1: Man bør ikke bruge NULL til at teste en char, NULL er en pointer.

2: Man bør ikke bruge gets(), en eller anden vil en dag indtaste flere karakterer end der er plads til i bufferen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester