指针数组——布袋中的彩色球
问题:
已知一个不透明的布袋里装有红、蓝、黄、绿、紫同样大小的圆球各一个,现从中一次抓出两个,问可能抓到的是什么颜色的球?
源程序:
#include<stdio.h>
int main(void)
{
char *color[5] = {"red", "blue", "yellow", "green", "purple"}; /* 初始化 */
int count = 0, i, j;
for(i = 0; i <= 4; i++) /* i代表第一个球对应的颜色下标 */
for(j = 0; j <= 4; j++) { /* j代表第二个球对应的颜色下标 */
if(i == j) continue; /* 两个球不能同色 */
count ++;
printf("%6d", count);
printf("%10s %10s\n", color[i], color[j]); //这行重要!
}
return 0;
}
代码块中 char *color[5]
是指针数组,数组元素是指针类型,用于存放内存地址。
所以 color[i]
和 color[j]
都表示内存地址,因为输出时选择类型为==%s==,所以输出对应存放的字符串。