打印

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

[复制链接]
3986|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 后面确实只能是常量。

谢谢大家参与

使用特权

评论回复
5
playjian| | 2011-5-7 08:59 | 只看该作者
应该是不可以以的~~const修饰了~~他本身还是变量~~只是他是不能改变的变量~~~如果可以应该是编译器对其的理解不一样~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

67

主题

452

帖子

1

粉丝