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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 诺微_ 中级黑马   /  2014-11-20 23:08  /  1553 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>
int main()
{
    /*
    // 陷阱1(若条件为判断两个值是否相等,少些一个“=”号,后果很严重)
    // 解决对策:判断两个值是否相等时,将常量写前面,变量写后面,若少写一个“=”号,编译器就会报错,因为常量不允许修改
   
    int a = 10;
   
    if(5 == a) // 如果写成   if(a == 5)  少些一个“=”号,即: if(a = 5)会有警告,但不会报错,此时相当于对a赋值为5,由于任何数都有真假性,导致条件为真,后果很严重
    {
        printf("a等于5\n");
    }
    else
    {
        printf("a不等于5\n");
    }
     */
   
   
    /*
    // 陷阱2
   
    int a = 10;
   
    a == 15; // 手贱,多写了一个“=”号,变成了条件运算符(会有警告)
   
    printf("a=%d\n", a); // 运行结果:a=10。并没有对a重新赋值15
    */
   
    /*
    // 陷阱3
   
    if( 5 > 6); // 手贱,多写了一个“;”号,(会有警告)导致后面大括号内的代码成了一个代码块,必然执行,需特别注意!!!!
    {
        printf("A\n"); // 条件不成立也执行了(此时已为代码块)
    }
     */
   
    /*
    // 陷阱4(错误代码:使用了未定义的变量)
    // 解决对策:如果要在if语句中定义新的变量,必须用大括号“{ }”,一般情况下也不建议不写大括号
   
    if(10 > 6)
    {
        int a = 5; // 变量a的作用域为if后面的大括号内
    }              // 变量a再内存中被销毁了
   
    printf("a的值为:%d", a); // 变量a已经被销毁,再使用变量a相当于没有定义,报错信息:(error: use of undeclared identifier 'a'    printf("a的值为:%d", a);)
    */
   
   
    // 陷阱5(错误代码:变量作用域不明确)
   
    /*if(10 > 6)
        int a = 5; // 变量a的作用域不明确:对于if语句来说,a的作用于为if语句,但从代码格式上来说a的作用于是为main函数(再main函数的大括号内)编译器不明白变量a的作用于,导致变量a的作用于不明确,报错信息(error: expected expression )*/
   
    return 0;
}

4 个回复

倒序浏览
我觉得的编程风格应该习惯成这样的
if(){


不要养成if()


这样的
回复 使用道具 举报
今天刚看到这里
回复 使用道具 举报
学习一下
回复 使用道具 举报
可以写在博客里啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马