step1 . day10 C语言基础练习之指针和函数

最近指针和字符串、函数一系列的结合整的有点蒙,梳理了一下终于有点眉目了,用代码练习了一下

1,指针函数(返回值是指针的函数)

#include <stdio.h>


char * fun(char * arr);

int main(int argc, const char *argv[])
{
char arr[100]="hello worlde";

printf("str before::%s ",arr);

fun(arr);

printf("str after::%s ",arr);

return 0;

}


char * fun(char *arr){
while(*arr){
if(*arr == ' '){
arr++;
continue;
}
*arr -= 32;
arr++;

}
return arr;

}

2.函数指针(函数名即使函数的地址,即使函数指针)

#include <stdio.h>


char * fun(char * arr);

int main(int argc, const char *argv[])
{
char arr[100]="hello worlde";

char *(*p)(char *) = fun;
printf("str before::%s ",arr);

p(arr);

printf("str after::%s ",arr);

return 0;

}


char * fun(char *arr){
while(*arr){
if(*arr == ' '){
arr++;
continue;
}
*arr -= 32;
arr++;
}
return arr;
}

3.函数指针数组(将多个函数指针放入数组中)

#include <stdio.h>


char * fun(char * arr);

char * fun1(char * arr);

int main(int argc, const char *argv[])
{
char arr[100]="hello worlde";

char *(*p[2])(char *);
p[0] = fun;
p[1] = fun1;
printf("str before::%s ",arr);

p[0](arr);
p[1](arr);

printf("str after::%s ",arr);

return 0;

}


char * fun(char *arr){
while(*arr){
if(*arr == ' '){
arr++;
continue;
}
*arr -= 32;
arr++;
}
return arr;
}

char * fun1(char * arr)
{
while(*arr){
if(*arr == ' '){
*arr = '&';
break;
}
arr++;
}
return arr;
}

4.函数指针数组指针(将函数指针数组的地址定义为另一个指针,一般不常用,就不继续举例下去了)

原文地址:https://www.cnblogs.com/huiji12321/p/11150339.html