C语言指针2

来源:互联网 发布:java开源考勤系统 编辑:程序博客网 时间:2024/05/17 08:41
#include <stdio.h>//指针函数char *getWord(char);char *getWord(char c){    switch(c){        case 'A': return "Apple";        case 'B': return "Banana";        case 'C': return "Cat";        case 'D': return "Dog";        default:return "None";    }}int main(){    char input;    printf("请输入一个字母:");    scanf("%c",&input);    printf("%s",getWord(input));    //%S 截止于'\0'     return 0;} 
 #include <stdio.h>//指针函数char *getWord(char);char *getWord(char c){    char str1[]= "Apple";    char str2[]= "Banana";    char str3[]= "Cat";    char str4[]= "Dog";    char str5[]= "None";    switch(c){        case 'A': return str1; //不可以返回局部变量的地址         case 'B': return str2; //        case 'C': return str3;        case 'D': return str4;        default:return str5;    }}int main(){    char input;    printf("请输入一个字母:");    scanf("%c",&input);    printf("%s",getWord(input));    //%S 截止于'\0'     //不会返回正常结果    return 0;} 
#include <stdio.h>//函数指针:指向函数的指针 int square(int);int square(int num){    return num * num;}int main(){    int num;    int (*fp)(int);    printf("请输入一个整数:");    scanf("%d",&num);    fp = square;    printf("%d x %d = %d\n", num, num ,(*fp)(num)) ;    return 0;}
输入:6输出:请输入一个整数:66 x 6 = 36
#include <stdio.h>int add(int, int);int sub(int, int);int calc(int (*fp)(int, int), int ,int);int  (*select(char))(int, int);//返回值为带两个参数的函数指针   (*)(int int) int add(int x, int y){    return x + y;}int sub(int x, int y){    return x - y;}int calc(int (*fp)(int, int), int x, int y){    return (*fp)(x, y);}int  (*select(char op))(int, int ){    switch(op){        case '+' : return add;        case '-' : return sub;     }}int main(){    int x,y;    char op;    int (*fp)(int, int);    printf("请入一个式子:如1+3:");    scanf("%d%c%d", &x, &op, &y);    fp = select(op);    printf("%d %c %d = %d", x, op, y, calc(fp,x,y));    return 0;}
测式 :1+3;2-9输出:请入一个式子:如1+3:1+31 + 3 = 4-------------------------请入一个式子:如1+3:2-92 - 9 = -7