for(i=sizeof(int)*8-2i>=0;i--)是什么意思?

如题所述

分析

根据提问中提出的for(i=sizeof(int)*8-2i>=0;i--),这个循环条件并不符合for语句的语法,缺少分号(;),在编译器中会发生报错,如下图所示

for语句的语法格式如下

for(语句1;语句2;语句3){

    循环体

}

因此根据上述分析,题目中for语句的正确格式应该为for(i=sizeof(int)*8-2;i>=0;i--),根据这个for语句分析如下

(1)sizeof()函数为C语言内置函数,作用是以字节为单位,返回运算对象的大小。

(2)int为整型,占4个字节

因此sizeof(int)*8-2的结果为4*8-2 =30

根据上述的分析原有的语句for(i=sizeof(int)*8-2;i>=0;i--),即为for(i=30;i>=0;i--)。这个for循环语句为递减的语句,做个简单的分析:

(1)第1次循环,当循环变量i=30,判断i>=0,只要成立,i--。循环结束后i=29。

(2)第2次循环,此时循环变量i=29,判断i>=0成立,i--。循环结束后i=28。

以此类推,循环变量从30递减到0。

总结

(1)     这个循环的作用是从30递减至0。

(2)     循环中有sizeof()函数,用作以字节为单位返回运算对象的大小。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-18
意思为当i满足sizeof(int)*8>=2i时@1,执行i--@1,一直当i不满足@1条件时,跳出for循环