程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C/C++函數指針,指針函數的用法,用處

C/C++函數指針,指針函數的用法,用處

編輯:關於C語言

 先看函數指針 int func2(int x);    /* 聲明一個函數 */ int (*q2) (int x);   /* 聲明一個函數指針 */ q2=func2;        /* 將func函數的首地址賦給指針f */ int c=(*q2)(3);   //3可以為任意實參   上面4句基本說明了函數指針的用法: 函數指針是指向函數的指針,確切的說,是指向特定類型函數的指針(函數與函數指針 類型要匹配) 函數指針用來保存函數首地址,即可以通過該指針訪問函數。函數指針相當於取別名。 函數指針可以指向一類函數,而不是一個函數,即可以重新賦值。(見例2)   函數指針不難,只要記住上面黑體字就差不多了,附上兩個簡單的例子 例1: View Code

例2:

View Code

 

再看指針函數: int *func(int x);/* 聲明一個指針函數 */ int *q; /* 聲明一個指針 */ q=func(3);//3可以為任意實參   上面三句基本說明了指針函數: 指針函數是返回值為指針的函數,所以我們在main()中調用它時可以用一個同類型的指針來接收。 指針函數可以用來解決眾多問題,如返回多個值的問題。(見"函數返回多個值的方法"那篇文章) 指針函數比經常更經常用到,一定要學會用   指針函數邏輯簡單,結構清新,功能強大,質量好,效率高,堪比極品中的鳳姐,勝過。。。(求下聯),反正不學會真是損失。   例3也是百度來的,個人覺得很經典,涉及到了指針,數組指針,指針函數,二維數組的賦值,函數返回多個值,數組指針的自增與指針自增的區別。。。眾多知識。看懂這個基本指針這一塊差不多了。   例3:
#include<iostream>
  *find( (*p)[], m);
 score[][]={{,,,},{,,,},{,,,}};
 *pf=NULL;

>>=find(score,m);
(i=;i<;i++<<*(pf+i)<< <<  *find( (*p)[], *pf==*(p+m);

pf=*(p+m);//p是指向二維數組的指針,加*取一維數組的指針

這句很經典。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved