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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tangwanchao 中级黑马   /  2015-3-31 17:06  /  1340 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在看C语言视频时遇到的关于if语句的问题,在视频中解释if语句的第四种结构时,以下这种写法没有问题可以正常编译与运行
  1. #include <stdio.h>
  2. int main()
  3. {
  4.      int a=10;
  5.      if (a>10)
  6.           printf("A\n");
  7.           printf("B\n");
  8.      return 0;
  9. }
复制代码
但是下面这种写法却编译报错
  1. #include <stdio.h>
  2. int main()
  3. {
  4. if (10>6)
  5. int a =5;
  6. printf("%d\n" , a);
  7. return 0;
  8. }
复制代码
具体问题出在哪?if语句如果没有加大括号怎么执行选择呢?

2 个回复

倒序浏览
你的问题很严重,首先你把a定义在if语句里一定要中括号{},即使if语句里有一行代码,你这样写完,编译器会提示你a没有定义,我猜你是想把a的定义在if语句里,是么?一旦这样了a只存活在if语句中,一旦跳出if语句,a就消失了,你可以这样改:
#include <stdio.h>
int main()
{
    if (10>6){
        int a =5;
        printf("%d\n" , a);
    }
    return 0;
}
回复 使用道具 举报
oucding 发表于 2015-3-31 17:31
你的问题很严重,首先你把a定义在if语句里一定要中括号{},即使if语句里有一行代码,你这样写完,编译器 ...

谢谢啦,我是在学习视频时碰到的,现在知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马