C語言筆記-指標(9) 用typedef簡化指標,函數指標

有時候看到複雜類行的指標,可以考慮用typedeg進行簡化

typedef cahr* string;

拿上一篇的範例進行簡化:

#include <stdio.h>



int main(){
    char *list[]={"first","second","third",NULL};
    for(char **p=list;*p!=NULL;p++)
        printf("%s\n",p[0]);
}


聲明變的清楚易懂,list就是一個字串陣列
string *p表示p是一個指向字串的指標,所以*p表示一個字串



---------------------------------------------------------

有一函數:
                        double a_fn(int,int);

只要添加星號(括號一定要加,保證優先權),就是描述一個指向這類行的函數指標:
                         double (*a_fn_type)(int,int);

前面再加上typedef來定義一種類型:
                         typedef double(*a_fn_type)(int,int);

可以把它當成一個類型來使用,聲明一個接受另一個函數做為輸入參數函數:
   double apply_a_fn(a_fn_type f,int first_int,int second_in){
        return f(first_in,second_in);



指標其實很簡單,就只是一個別名或位置而已,根本不用涉及不同類型的記憶體管理。


此文章內容參考"21 century c"一書,在此做筆記
如須刪除請告知 謝謝




留言

這個網誌中的熱門文章

FreeRTOS學習筆記 (二)-任務創建和刪除(xTaskCreate及vTaskDelete)

FreeRTOS學習筆記 (三)-時間管理vTaskDelay()及vTaskDelayUntil()

C語言筆記-文本處理(1) 善用 asprintf取代sprintf