2017-11-04 6 views
-3

Wenn ich das Programm unten kompiliere.Zeiger und Funktionsargumente Beispiel

#include <stdio.h> 
    void foo(int*); 
    int main() 
    { 
     int i = 10; 
     foo((&i)++);//i am getting this line properly 
    } 
    void foo(int *p) 
    { 
     printf("%d\n", *p); 
    } 

dann werde ich diesen Fehler Gesicht

output->error: lvalue required as increment operand 
     foo((&i)++); 

Kann mir jemand erklären ???

+0

was möchten Sie erreichen? erhöhe ich? –

+0

@AmarYadav, sollten Sie [Fragen suchen] (https://stackoverflow.com/search?q=%22lvalue+required+als+increment+operand%22) bevor Sie Fragen stellen. Bitte überprüfen Sie https://stackoverflow.com/help/how-to-ask. – jwdonahue

Antwort

0

Entfernen Sie "++" von foo ((& i) ++). "& i" ist kein Zeiger, den Sie erhöhen können, ist die Speicheradresse von "i" var.

+0

Warum bekomme ich Lvalue als Inkrement Operand erforderlich –

Verwandte Themen