御笔剑客 发表于 2017-10-31 14:45:56

一段代码问题

#include <stdio.h>
#include <math.h>
int main()
{
        int i,a;
        for(i=0;i<8;i++)
        a=pow(2,i+1);
        i=0;
        do
        {
                printf("%d\n",a);
                i++;
        }while(i<=8);
       
        return 0;
       
}
题目:12.编写一个程序,创建一个8个元素的int数组,并且把元素分别设置为2的前8次幂,然后打印他们的值。使用for循环来设置值,为了变化,使用do while循环来显示这些值
为什么最后结果会有一个36多出来?

BngThea 发表于 2017-10-31 15:17:52

数组越界,将while循环判断改为 i < 8

御笔剑客 发表于 2017-10-31 15:23:03

BngThea 发表于 2017-10-31 15:17
数组越界,将while循环判断改为 i < 8

数组越界后的36是由内存决定的吗?

BngThea 发表于 2017-10-31 15:35:29

御笔剑客 发表于 2017-10-31 15:23
数组越界后的36是由内存决定的吗?

对,后面的数据是随机的,或者说是未知的

御笔剑客 发表于 2017-10-31 20:51:18

BngThea 发表于 2017-10-31 15:35
对,后面的数据是随机的,或者说是未知的

好的,谢谢了
页: [1]
查看完整版本: 一段代码问题