#pragma warning(disable : 4996)
#include <iostream>
using namespace std;
int add(int a, int b)
{
printf("fun add ... %d\n", a + b);
return a + b;
}
int main()
{
//數組指針語法梳理
int a[10];
{
//定義一個數組類型
typedef int ArrayType[10];
ArrayType array;
array[0] = 10;
printf("array[0],%d \n", array[0]);
}
{
//定義一個指針數組類型
typedef int (*PArrayType)[10];
PArrayType array;
array = &a;
(*array)[0] = 20;
printf("a[0],%d \n", a[0]);
}
{
//定義一個指向數組類型的指針
int(*ParrayType)[10];
ParrayType = &a;
(*ParrayType)[0] = 40;
printf("a[0],%d \n", a[0]);
}
//函數指針語法梳理
{
//定義一個函數類型
typedef int (MyFuncType)(int a, int b);
MyFuncType *pMyFuncType;
pMyFuncType = add;
pMyFuncType(1, 2);
}
{
//定義一個函數指針類型
typedef int(*pMyFuncType)(int a, int b);
pMyFuncType myFunc;
myFunc = add;
myFunc(3, 4);
}
{
//定義一個函數指針
int(*pMyFunc)(int a, int b);
pMyFunc = add;
pMyFunc(5, 6);
}
system("pause");
return 0;
}