函數指標問題,求解答,函數指標問題,
代碼中給函數指標賦值的 語句1、2、3 以及用函數指標調用函數的 語句a、b 運行結果都正確,到底哪個才是正確的呢???
#include<stdio.h>int add(int a,int b){return a+b;}int main(){int (*p)(int,int);int sum;p = add; //語句1//p = &add; //語句2//p = *add; //語句3sum = p(1,2); //語句a//sum = (*p)(a,b); //語句bprintf("%d\n",sum);return 0;}
c語言指標問題,解答
首先 函數指標的定義
A、D定義為:A 定義指向函數的指標pf,所指向的函數參數為空白,無傳回值
D 定義指向函數的指標pf,函數參數為int,char型(不符題意,題目為int,char*),無傳回值
B、D的定義為:定義函數pf,函數參數為空白,傳回型別為void *(void 型指標)
單從函數指標的定義可排除BCD。
其次,指標賦值
函數名與數組名性質類似:數組名為數組內第一個資料的地址,即a[10],則a==&a[0]
函數名為函數體內第一條指令的記憶體位址~~所以複製時不用取地址操作符&了!
希望可以幫到你。
函數指標問題:簡單的C程式,不知道為何編譯報錯,解答,了
樓主你好
因為你自訂的函數filefunc、editfunc的傳回值類型都是void型的
與你定義的函數指標的傳回值類型int不匹配 所以將int改為void就行了
#include<stdio.h>
#include<stdlib.h>
void filefunc()
{
printf("njksjk\n");
}
void editfunc()
{
printf("nsjknjk\n");
}
int main()
{
typedef void (*funcp)();//void改為int
funcp p=filefunc;
p();
p=editfunc;
p();
system("pause");
return 0;
}
希望能協助你哈