LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 716|回复: 5

权举问题 ?

[复制链接]
发表于 2004-9-20 02:10:26 | 显示全部楼层 |阅读模式
  1. main()
  2. {
  3.   enum body { a,b,c,d } month[31],j;
  4.   int i;
  5.   j=a;
  6.   for (i=1;i<=30;i++)
  7.   {
  8.     month[i]=j;
  9.     j++;
  10.     if ( j > d ) j=a;
  11.   }
  12.   for (i=1;i<=30;i++)
  13.   {
  14.     switch ( month[i] )
  15.     {
  16.       case a:printf(" 2%d %c\t",i,'a');break;
  17.       case b:printf(" 2%d %c\t",i,'b');break;
  18.       case c:printf(" 2%d %c\t",i,'c');break;
  19.       case d:printf(" 2%d %c\t",i,'d');break;
  20.       default:break;
  21.     }
  22.   }
  23.   printf("\n");
  24. }
复制代码


1:请问printf时,后面字母加单引号是什么意思 ?

为什么这样也可以,书中为什么不这样用 ?
  1.       case a:printf(" 2%d a\t",i);break;
  2.       case b:printf(" 2%d b\t",i);break;
  3.       case c:printf(" 2%d c\t",i);break;
  4.       case d:printf(" 2%d d\t",i);break;
复制代码

2:权举在程序中起什么作用,什么时候会用到 ?

3:书上说"只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量" 可我enum boy { aa,bb=29999,cc=9999 } 也可以呀

看到书上和一些文章不理解,提出来问,谢谢你们 !
 楼主| 发表于 2004-9-20 02:12:46 | 显示全部楼层
上面case后面是CASE ARINTF(这里用大写代替,用小写又变成图像了) , 不知道怎么改回来,都变成图像了
发表于 2004-9-20 11:01:17 | 显示全部楼层
最初由 shell 发表
上面case后面是CASE ARINTF(这里用大写代替,用小写又变成图像了) , 不知道怎么改回来,都变成图像了

发贴时选择“预览回复”,再选择“在帖子中禁用表情符号”。
发表于 2004-9-20 23:21:17 | 显示全部楼层

回复: 权举问题 ?

最初由 shell 发表


  1. main()
  2. {
  3.   enum body { a,b,c,d } month[31],j;
  4.   int i;
  5.   j=a;
  6.   for (i=1;i<=30;i++)
  7.   {
  8.     month[i]=j;
  9.     j++;
  10.     if ( j > d ) j=a;
  11.   }
  12.   for (i=1;i<=30;i++)
  13.   {
  14.     switch ( month[i] )
  15.     {
  16.       case a:printf(" 2%d %c\t",i,'a');break;
  17.       case b:printf(" 2%d %c\t",i,'b');break;
  18.       case c:printf(" 2%d %c\t",i,'c');break;
  19.       case d:printf(" 2%d %c\t",i,'d');break;
  20.       default:break;
  21.     }
  22.   }
  23.   printf("\n");
  24. }


复制代码



1:请问printf时,后面字母加单引号是什么意思 ?

为什么这样也可以,书中为什么不这样用 ?



  1.       case a:printf(" 2%d a\t",i);break;
  2.       case b:printf(" 2%d b\t",i);break;
  3.       case c:printf(" 2%d c\t",i);break;
  4.       case d:printf(" 2%d d\t",i);break;

复制代码


2:权举在程序中起什么作用,什么时候会用到 ?

3:书上说"只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量" 可我enum boy { aa,bb=29999,cc=9999 } 也可以呀

看到书上和一些文章不理解,提出来问,谢谢你们 !

1.单引号表示字符,你的想法是对的,书上那样也不错
2.是枚举,不是权举,呵呵。作用跟常量定义差不多,用来加强可读性
3.说的是不能赋给变量,enum boy { aa,bb=29999,cc=9999 }中aa,bb,cc是枚举值,不是变量
 楼主| 发表于 2004-9-21 02:33:50 | 显示全部楼层
谢谢你,,,,明白 ,还有个问题,下面红色部分,cc(t),这个t为什么要加括号,怎么理解 ??


  1. #include<stdio.h>
  2.                                                                                                                  
  3. main()
  4. {
  5.   enum cc { mon=1,tue,wed,thu,fri,sat,sun } month[31];
  6.   int i,t=1;
  7.   for (i=1;i<=30;i++)
  8.   {
  9.     [color=crimson]month[i]=cc(t);[/color]
  10.     t++;
  11.     if ( t > 7 ) t=1;
  12.   }
  13.   for (i=1;i<=30;i++)
  14.   {
  15.     we=month[i];
  16.                                                                                                                  
  17.     switch (we)
  18.     {
  19.     case sun: printf(" %2d %s\t",i,"sun");break;
  20.     case mon: printf(" %2d %s\t",i,"mon");break;
  21.     case tue: printf(" %2d %s\t",i,"tue");break;
  22.     case wed: printf(" %2d %s\t",i,"wed");break;
  23.     case thu: printf(" %2d %s\t",i,"thu");break;
  24.     case fri: printf(" %2d %s\t",i,"fri");break;
  25.     case sat: printf(" %2d %s\t",i,"sat");break;
  26.     default:break;
  27.     }
  28.   }
  29.   printf("\n");
  30. }
复制代码
发表于 2004-9-21 06:59:55 | 显示全部楼层
括号是把int型强制转换成cc型
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表