gdmgb520 发表于 2011-4-18 22:59

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

该书中有一个问题: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修饰了~~他本身还是变量~~只是他是不能改变的变量~~~如果可以应该是编译器对其的理解不一样~
页: [1]
查看完整版本: case 后接 const 常量的问题 C深度解剖