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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 736010695 中级黑马   /  2014-10-13 21:42  /  2323 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

陷阱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;
}

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

8 个回复

倒序浏览
好帖,顶起来。。。
回复 使用道具 举报
米匠 发表于 2014-10-13 22:32
好帖,顶起来。。。

不敢当,看视频自己总结下,为了记得牢些
回复 使用道具 举报
第3个 if 后面加分号,相当于后面是一个空语句!
回复 使用道具 举报
微雨独行 发表于 2014-10-14 00:07
第3个 if 后面加分号,相当于后面是一个空语句!

学习了,谢谢指点
回复 使用道具 举报
每日更新必须顶啊~~~
回复 使用道具 举报
邢玉池 发表于 2014-10-14 02:15
每日更新必须顶啊~~~

谢谢同学,我这都是基础皮毛
回复 使用道具 举报
安康 初级黑马 2014-10-14 16:57:04
8#
看的是李明杰老师的视频吗?
我前两天也看到那了,咱俩进度差不多哈哈。。
回复 使用道具 举报
736010695 发表于 2014-10-14 12:46
谢谢同学,我这都是基础皮毛

我也是刚学基础啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马