Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带符号v.s.unsigned int的嵌套循环_C++_Loops_Unsigned_Signed - Fatal编程技术网

C++ 带符号v.s.unsigned int的嵌套循环

C++ 带符号v.s.unsigned int的嵌套循环,c++,loops,unsigned,signed,C++,Loops,Unsigned,Signed,有人知道为什么在i的第一次迭代中,即outter循环,没有通过 内环 我想:也许这和有符号的i和无符号的j有关 代码: 考虑您的代码: for(signed i = a.getRows()-1; i > -1; --i){ for(unsigned j = i+1; j < a.getRows(); ++j){ 在第一次迭代中,j将被设置为a.getRows-1+1。显然,a.getRows

有人知道为什么在i的第一次迭代中,即outter循环,没有通过 内环

我想:也许这和有符号的i和无符号的j有关

代码:

考虑您的代码:

for(signed i = a.getRows()-1; i > -1; --i){
    for(unsigned j = i+1; j < a.getRows(); ++j){
在第一次迭代中,j将被设置为a.getRows-1+1。显然,a.getRows假设a.getRows返回3。然后我从2开始。然后j以3开头。j=3时的回路;j<3++j执行零次,因为测试条件最初为假


类似的逻辑也适用于其他值,除非a.getRows-1超出带符号int的范围。

a.getRows返回的类型和值是什么外部循环的第一次不满足内部循环条件。您是否尝试过使用调试器,或打印出正在比较的变量的值?哦,好的!我想出来了。。。很简单,p:我想。。。谢谢非常感谢!
for(signed i = a.getRows()-1; i > -1; --i){
    for(unsigned j = i+1; j < a.getRows(); ++j){