我明明定义的是a[9][9], 然后 i j 都是从1 开始(所以说a[1][1]开始到a[8][8]为止) ,
答案:3 悬赏:70 手机版
解决时间 2021-03-28 17:00
- 提问者网友:龅牙恐龙妹
- 2021-03-28 01:41
我明明定义的是a[9][9], 然后 i j 都是从1 开始(所以说a[1][1]开始到a[8][8]为止) ,
最佳答案
- 五星知识达人网友:忘川信使
- 2021-03-28 03:15
这个我试了一下,确实越界了也可以赋值,这个应该是编译器本身的原因,虽然没有报错,但是这种做法可能会导致一些未知的问题,还是人工保证不越界吧。追问我用的是VC 6.0 好把~ 有什么好点一点的编译器?追答我也用的VC ,好像用GCC的话会报错。
全部回答
- 1楼网友:玩世
- 2021-03-28 05:33
因为i的终止条件i<10,也是说可以取9为值追问我定义的是 a[9][9],所以说下边a[0][0]开始,直到a[8][8] 一共9个~ 所以说哪来的a[9][9] i j 最后都是9追答
你为什么没有报错,才是奇怪的
追问我和你用的都是一样的 编译器~ 我想说的是 为什么我定义a[9][9] 还能运行~ 定义a[5][5] 44 33 也能运行~追答这个只能是编译器的问题,你定义的数据越界了,而且你给他们赋值了,再输出。那我觉得可以理解成,有一个地址位置,然后你给他存了数据,再读取。
你为什么没有报错,才是奇怪的
追问我和你用的都是一样的 编译器~ 我想说的是 为什么我定义a[9][9] 还能运行~ 定义a[5][5] 44 33 也能运行~追答这个只能是编译器的问题,你定义的数据越界了,而且你给他们赋值了,再输出。那我觉得可以理解成,有一个地址位置,然后你给他存了数据,再读取。
- 2楼网友:長槍戰八方
- 2021-03-28 04:26
你的i小于10才停止,不是到9列才停止吗???就是这里错了啊。后面你又是j<=9才停止,也是到的9才停止啊,还有定义a[9][9]是从0-9定义的。不是从1到8追问i 和 j 都是到9 停止
我定义的是a[9][9] 所以从a[0][0]开始到a[8][8]结束~
a[i][j]=i*j 成了a[9][9] 不在我定义的里面 怎么会出现追答不是,你定义多少就到多少结束。你的循环终止条件是i小于10,j小于等于9,也就是说两个都是到9运行完才停的。不是你所认为的定义9到从0-8结束,而是从0-9。追问你自己试一试看看追答
所以说你理解错了,不是0-8,就是0-9
我定义的是a[9][9] 所以从a[0][0]开始到a[8][8]结束~
a[i][j]=i*j 成了a[9][9] 不在我定义的里面 怎么会出现追答不是,你定义多少就到多少结束。你的循环终止条件是i小于10,j小于等于9,也就是说两个都是到9运行完才停的。不是你所认为的定义9到从0-8结束,而是从0-9。追问你自己试一试看看追答
所以说你理解错了,不是0-8,就是0-9
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯