注册 登录
编程论坛 C++教室

奇怪的 数组问题

tcseay 发布于 2009-08-31 01:12, 498 次点击
程序代码:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int mb[10][8]={
        {23,72,73,32,13,49,57,95},
        {42,08,40,93,05,16,18,17},
        {71,85,17,65,61,79,97,66},
        {20,88,29,74,74,23,61,06},
        {78,84,81,71,50,94,79,03},
        {29,57,64,24,95,50,69,72},
        {03,36,91,65,18,80,78,74},
        {17,39,45,26,32,22,77,22},
        {75,30,00,12,29,21,64,29},
        {76,50,74,10,22,61,13,56}
        };
    for(int i=0;i<10;i++)
    {
        for(int k=0;k<8;k++)
        {
            cout<<setw(2)<<mb[i][k]<<' ';
        }
        cout<<endl;
    }
    return 0;
}
编译后出现错误:
D:\VC6\MyProjects\qqq\main.cpp(8) : error C2041: illegal digit '8' for base '8'
我把 08 改为 8. 后 又变好了..?
这是怎么回事?

[ 本帖最后由 tcseay 于 2009-8-31 02:21 编辑 ]
9 回复
#2
kewei_liu2009-08-31 09:10
因为0后面是八进制数,八进制数中没有8
#3
hyfl2009-08-31 09:50
楼上正解!
#4
平凡不在2009-08-31 13:51
回复一楼:
    那为什么改为8.后正确了?8.是浮点型数吧?而楼主定义的是整数的呀!
#5
forclwy2009-08-31 15:21
回复 4楼 平凡不在
8后面那个点,我想是句号。
#6
newCpp2009-08-31 16:53
一楼的太对了啊!!
我晕,我按他说的将08的0去掉就能够运行了
#7
柳亚子2009-08-31 20:45
08表示的是八进制的数据
#8
yuc19876242009-08-31 21:38
8进制的开头是数字0还是字母o啊???
#9
forclwy2009-09-01 16:18
当然是数字
#10
forclwy2009-09-01 16:18
当然是数字
1