- 论坛徽章:
- 0
|
按理说,枚举类型定义后,该枚举变量的值应该只限与列举出来的值的范围,象我后面的代码应该只局限于:enDV = 0, envBVMV=1
可要是象下面那样定义一个枚举类型的二维数组的话,在第一次for循环实际打印的值却是我{}中赋予的值。所以在if判断时
会打印faild!但在后面的for循环中,打印出来的所有二维数组却又都不是enDV = 0就是envBVMV=1。
而在第三次for循环打印中却都是2。不清楚为什么三次for循环打印为什么有三种结果,请高手指点!
#include "stdio.h"
enum enBRV
{
enDV = 0,
envBVMV
};
main()
{
int i,j;
enum enBRV g_abyBSfC[ 8 ][ 3 ]
= {
{0,2,3},
{1,2,3},
{2,2,3},
{3,2,3},
{4,2,3},
{5,2,3},
{6,2,3},
{7,2,3},
};
if (g_abyBSfC[ 1 ][ 1 ] == enDV)
printf("success!\n");
else
printf("faild!\n");
for (i=0;i<8;i++)
{
for (j=0;j<3;j++)
printf("%d ",g_abyBSfC[ i ][ j ]);
}
printf("\n");
for (i=0;i<8;i++)
{
for (j=0;j<3;j++)
for (g_abyBSfC[ i ][ j ]=enDV;g_abyBSfC[ i ][ j ]<=envBVMV;g_abyBSfC[ i ][ j ]++)
printf("%d ",g_abyBSfC[ i ][ j ]);
}
printf("\n");
for (i=0;i<8;i++)
{
for (j=0;j<3;j++)
printf("%d ",g_abyBSfC[ i ][ j ]);
}
}
打印结果:
faild!
0 2 3 1 2 3 2 2 3 3 2 3 4 2 3 5 2 3 6 2 3 7 2 3
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[ 本帖最后由 miaoxins 于 2008-6-16 15:51 编辑 ] |
|