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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© normalwzh 中级黑马   /  2015-11-9 22:19  /  1430 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、 下面代码打印结果是__________(需要写上分析思路)
#include <stdio.h>
int main(int argc, const char * argv[])
{
    int b;
    int a = 5;
    b = (++a) + (a++);
   
    printf("b=%d, a=%d\n", b, a);
    return 0;
}

答案是b = 12,a = 7
第一个++a的时候,++a 等于6 ,同时a加一等于6.
第二个a++是把a的值复制给a++所以a++等于6 ,但是此时a要加一等于7
所以b = 6+6=12  ,a = 7;

13 个回复

倒序浏览
请问楼主 b=(++a) + (a++); 去掉括号后答案有区别吗?

点评

答案一样的  发表于 2015-11-13 22:18
回复 使用道具 举报
呵呵,这是黑马入学考试基础测试的其中一道题
回复 使用道具 举报
没啥难度= =
回复 使用道具 举报
可以可以
回复 使用道具 举报
终于攒够BBBBBBB
回复 使用道具 举报
为了黑马B我也是拼了
回复 使用道具 举报
poxiao 中级黑马 2015-11-14 16:07:15
8#
个人觉得这题本来想考察a++和++a的区别,但是这题没体现出来差别
回复 使用道具 举报
mr.late 中级黑马 2015-11-14 17:04:33
9#
额.看来我得回去看第二天的内容了
回复 使用道具 举报
chensc 金牌黑马 2015-11-15 07:55:29
10#
学习学习!
回复 使用道具 举报
学习中,支持一个
回复 使用道具 举报
学习了了
回复 使用道具 举报
谢谢大家
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马