for循环中的数组 在for外怎么获得它的值

int j=0 a数组已知但数据多
for (int i=0;i<n;i++)
{
if(a[i]==2)
{
b[i]=0;
}
else if(a[i]==4)
{
b[i]=4
}
}
在for外调用数组b[i]
for(int i=0;i<n;i++)
{
printf("%d",b[i]);
} 不能得到b数组中的值

不可能有这种情况,除非b数组是在前一个循环中声明的。追问

那就是不能在for循环外获得数组值了???

追答

如果b数组是在前一个for的{}中定义的,那它在{}外就是不可见的,所以在外面无法获得它;如果b是在前一个for的{}以外定义的,那就是可见的,在所定义的函数中随处可以读/写操作。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-29
你对b数组赋值不全,只在两个if里对b数组赋值,有的没有赋值。所以在外面打印b数组会不正确
第2个回答  2014-09-29
b数据必须在循环体外声明或定义。要么定义为全局的。追问

b 是在循环体外定义的。。。int*b=new int [n];如何定义为全局的

相似回答