2012-08-05 79 views
-1

我已經寫了一個指向函數的指針,但它給出了錯誤Lvalue required in function main爲什麼?我不能理解錯誤

#include<stdio.h> 
fun(); 
main() 
{ 
int fun(); 
int *ptr(); 
ptr=fun; //this line gives error 
*ptr(); 
} 
int fun() 
{ 
    printf("amol singh"); 
    return 0; 
} 
+1

你期望這個功能呢?正如所寫的,它根本沒有意義。 – 2012-08-05 07:48:00

+0

要聲明一個指向函數的指針,你需要使用圓括號將「指針」和名稱分組;否則啓動參數列表的括號「優先」。 'int(* ptr)();/*聲明ptr作爲指向一個函數的指針,指定一個指定數量的參數* /''int * ptr();/* declare函數返回一個指向int的指針,並且指定數量的參數* /' – pmg 2012-08-05 07:58:35

回答

1

這裏是工作代碼:

#include<stdio.h> 
int fun() { 
    printf("amol singh"); 
    return 0; 
} 
main() { 
    int (*ptr)(); 

    ptr=fun; 
    (*ptr)(); 
} 
+2

函數通過一個指針,你可以使用「標準」語法:'ptr();'會工作得很好:-) – pmg 2012-08-05 08:02:32