函數指標問題,求解答,函數指標問題,

來源:互聯網
上載者:User

函數指標問題,求解答,函數指標問題,

代碼中給函數指標賦值的 語句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;
}
希望能協助你哈
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.