1,指针作为函数参数的用途
void sumAndMinus(int a, int b, int *s, int *m) // 指针变量只能接收变量地址
{
*s = a + b;
*m = a - b;
}
int main()
{
int sum, minus;
sumAndMinus(10, 7, &sum, &minus);
printf("和为:%d \n差为:%d \n", sum, minus);
return 0;
}
2,返回指针的函数
,// 返回指针类型的数据,即返回指针的函数
char *test()
{
return "rose";
}
int main()
{
char *name = test();
printf("name = %s \n", name);
return 0;
}
3,指向函数的指针
void test()
{
printf("调用了test函数\n");
}
int sum(int a , int b)
{
retrun a+b;
}
int main()
{
// (*p)是固定写法,代表指针变量p将来肯定是指向函数
//左边的void代表,指针变量p指向的函数没有返回值
//右边的()代表,指针变量p指向的函数没有形参
void (*p)(); //无返回值,无形参
int (*p1)(int, int); //有返回值,有形参
//指针变量p指向了test函数
p = test;
p1 = sum;
test(); //直接调用
(*p)(); //间接调用
(*p1)(10, 11);
p(); //间接调用1
p1(10, 11); //间接调用1
return 0;
} |