C语言指针2

xiaoxiao2021-02-28  78

#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 输出: 请输入一个整数:6 6 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+3 1 + 3 = 4 ------------------------- 请入一个式子:如1+3:2-9 2 - 9 = -7
转载请注明原文地址: https://www.6miu.com/read-31081.html

最新回复(0)