case 后接 const 常量的问题 C深度解剖

[复制链接]
4615|4
 楼主| gdmgb520 发表于 2011-4-18 22:59 | 显示全部楼层 |阅读模式
该书中有一个问题:case 语句后面是否可以是const修缮的制度变量?

首先看了case语句,case语句后面只能跟常量或常量表达式。
在百度上看了,好几个人都说不可以。

但是我在vs2008 C环境下和KeilC中测试是可以的。

#include <stdio.h>
void main(void)
{
int const dat = 2;
int x = 0,z;
switch (dat)
{
case 0:
  x += 1;
  break;
case 1:
  x += 2;
  break;
case 2:
  x += 3;
  break;
default:break;
}
z = x;
}

所以我认为是可以在case后面接const修饰的只读变量的。
你认为呢?
 楼主| gdmgb520 发表于 2011-4-19 12:58 | 显示全部楼层
哦,不好意思,上面搞错了,应该是 dat 放到case 后面。
不知道行不行,晚上在试下。
应该是像书上说的那样不行吧。
zjx42135545 发表于 2011-4-20 09:25 | 显示全部楼层
应该不行的,dat是变量,不是常量!不知道楼主试验结果如何?
 楼主| gdmgb520 发表于 2011-5-5 16:55 | 显示全部楼层
case 后面确实只能是常量。

谢谢大家参与
playjian 发表于 2011-5-7 08:59 | 显示全部楼层
应该是不可以以的~~const修饰了~~他本身还是变量~~只是他是不能改变的变量~~~如果可以应该是编译器对其的理解不一样~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:了解新东西才知道自己的不足。 www.elecbench.com

67

主题

452

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部