黑马程序员技术交流社区

标题: 2014.10.13学习小结之陷阱总结 [打印本页]

作者: 736010695    时间: 2014-10-13 21:42
标题: 2014.10.13学习小结之陷阱总结
陷阱1:
#include<stdio.h>
int main()
{
    int a=10;
    if(a==0)/*如果这里写成a=0,那if语句就等于是if(0),这个if语句会永远不成立,跟原来目的“验证a是都等于0”背道而驰了,以后在写a==0时可以写成    0==a,如果不小心少些一个=,编译器会报错,也方便寻找,所以切记:=是赋值,==是等号*/
    {
    printf("a等于0");
    }
    else
    {
    printf("a不等于0");
    }

    return 0;
}

陷阱2:
#include<stdio.h>
int main()
{
    inta=10;
    a=5;/*这里a=5是要给a赋值为5,如果不小心写成a==5,那么赋值失败,输出结果会依然是a为10*/
    printf("%d\n",a);

    return 0;
}

陷阱3:
#include<stdio.h>
int main()
{
    if(5>6)/*如果这里不小心写了分号,那么这个if对下面代码块的影响就没了,就成了独
    立的代码块了*/
    {
    printf("A\n");
    }

    return 0;
}

陷阱4:
#include<stdio.h>
int main()
{
    if(5>6)
    {
        int a=7;
    }
    printf("%d\n",a);//这样输出不了a的值,因为printf函数在不大括号内(作用域)
    return 0;
}

陷阱5:
#include<stdio.h>
int main()
{
    if(5>6)//如果想在if语句后定义变量,必须用大括号
    int a=7;
    printf("%d\n",a);/*代码是错误的,作用域不明确,if语句后的代码应该在大括号内
    return 0;
}


作者: 米匠    时间: 2014-10-13 22:32
好帖,顶起来。。。
作者: 736010695    时间: 2014-10-14 00:04
米匠 发表于 2014-10-13 22:32
好帖,顶起来。。。

不敢当,看视频自己总结下,为了记得牢些
作者: 微雨独行    时间: 2014-10-14 00:07
第3个 if 后面加分号,相当于后面是一个空语句!
作者: 736010695    时间: 2014-10-14 00:12
微雨独行 发表于 2014-10-14 00:07
第3个 if 后面加分号,相当于后面是一个空语句!

学习了,谢谢指点
作者: 邢玉池    时间: 2014-10-14 02:15
每日更新必须顶啊~~~
作者: 736010695    时间: 2014-10-14 12:46
邢玉池 发表于 2014-10-14 02:15
每日更新必须顶啊~~~

谢谢同学,我这都是基础皮毛
作者: 安康    时间: 2014-10-14 16:57
看的是李明杰老师的视频吗?
我前两天也看到那了,咱俩进度差不多哈哈。。

作者: 邢玉池    时间: 2014-10-15 00:05
736010695 发表于 2014-10-14 12:46
谢谢同学,我这都是基础皮毛

我也是刚学基础啊。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2