A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 菜鸟_琦 中级黑马   /  2014-10-23 22:51  /  707 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


1.作用域不明确,for循环里定义新的变量时,循环一定要加大括号。
[cpp] view plaincopy
int main()  
{  
    for(int i=0;i<5;i++)  
           int a =10;  
  
    return 0;  
}//编译不通过。  

2.for条件后面不要随便加;号
3.循环体里面的变量作用域
[cpp] view plaincopy
int main()  
{  
    for(int i=0;i<5;i++,a++)//逗号运算符,可连接多个小语句  
    {  
           int a =10;  
    }  
    return 0;  
}  
此代码编译不通过,因为定量a的作用域只限于循环体内,执行完循环体后,a的内存就释放了,导致for条件里面的a没有定义。

4.循环体里面的变量定义
[cpp] view plaincopy
int main()  
{  
    for(int i=0;i<5;i++)  
    {  
           int i =10;  
           printf("%d\n",i);  
    }  
    return 0;  
}  
此语句可以编译成功,输出结果为5次10,因为循环体里面的新变量i,每次循环执行完毕后后释放,不与条件里面的i冲突。
5.变量的作用域比较
[cpp] view plaincopy
int main()  
{  
    int a =10 ;  
    for(int i=0,a=9;i<5;i++)  
    {  
           a=8;  
       printf("%d\n",a);  
    }  
    return 0;  
}  
此段代码里面定义了三个a,但是每个a的作用域不一样,执行语句最先找到a=8,若循环体里没有a=8,则找到a=9,若for条件里面没有a=9,则找到最外层的a=10.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马