找到一个整数值并将该值传递给循环中的另一个整数。但是一旦我移动到循环中的下一个点,整数值就会重置为初始值。我无法找到原因。
#include <iostream>
using namespace std;
int main()
{
int t,n,z=0;
int k=0;
cin>>t;
for(int i=0;i<t;i++){
cout<<"k before="<<k<<endl;
int z=i+2+k;
int k=z;
cout <<"k after="<<k<<endl;
cout <<z<<endl;
}
}
这里,对于 i=0,z=2 和 k=2。但在下一次迭代中,k 再次变为 0。
最佳答案
您正在使用您在 for
循环体内声明的那些隐藏外部 z
和 k
。所以“k after”指的是新声明的k
,“k before”指的是外部作用域中的那个。
写作
z=i+2+k;
k=z;
在循环中就是修复。
有些编译器会警告您 - 您是否已将警告设置为适当的级别?
关于c++ - 查找整数值并将该值传递给循环中的另一个整数但是整数被重置为初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57851623/