int i,flag=0; char ch; const char *color[5]={"red","blue","yellow","green","black"}; const char* *pc; pc=color; ch=getchar(); for(i=0;i<5;i++) if(**(pc+i)==ch) flag=1; if(flag) printf("Yes\n"); else printf("No\n"); return 0;
时间: 2024-04-03 07:33:43 浏览: 111
深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)
5星 · 资源好评率100%
这段代码是用来判断一个字符是否在一个颜色数组中。程序首先定义了一个整型变量 i 和一个标志变量 flag,并定义一个字符变量 ch。然后定义了一个常量字符指针数组 color,其中存储了五个字符串。接着定义了一个指向常量字符指针的指针 pc,将其初始化为指向 color 数组的首元素。接下来从标准输入中读入一个字符,然后用 for 循环遍历 color 数组,判断是否有与输入字符相等的字符。如果有,则将 flag 置为 1。最后根据 flag 的值输出结果。
需要注意的是,这里用了两个指针指向同一个地址的技巧,即 pc 和 *(pc+i) 都指向 color 数组中的字符串。另外,代码中的 **(pc+i) 相当于 *(pc+i)[0],即指向 color 数组中第 i 个字符串的首字符。
阅读全文