请大神帮忙检查一下
#include<iostream>
using namespace std;
int main()
{
const size_t array=10;
int ix;
const unsigned array_size=20;
int ia[array_size];
for(size_t ix=0;ix!=array_size;++ix)
ia[ix]=ix;
cout<<ia[ix]<<endl;
return 0;
}
出现的问题是1)从“size_t”转换到“int”,可能丢失数据
2)使用了未初始化的局部变量“ix” 局部变量
[解决办法]
#include<iostream>
using namespace std;
int main()
{
const size_t array=10;
//int ix; //没有使用,下面又定义了一个size_t 类型的ix ,注释掉这句就号了
const unsigned array_size=20;
int ia[array_size];
for(size_t ix=0;ix!=array_size;++ix)
ia[ix]=ix;
cout<<ia[ix]<<endl;
return 0;
}
[解决办法]
int ix;
const unsigned array_size=20;
int ia[array_size];
for(size_t ix=0;ix!=array_size;++ix)
ia[ix]=ix;
cout<<ia[ix]<<endl;
return 0;
}
虽然能编译通过 , 但我想你自己 可能都不知道ia[ix]=ix;这里哪个是哪个了吧.
虽然可以知道是局部优先.
你的程序去掉 int ix; 这句即可.