黑马程序员技术交流社区
标题: 【基础测试三】 [打印本页]
作者: black747521 时间: 2015-11-6 23:57
标题: 【基础测试三】
//
// main.c
// 测试题 3
// 3、 下面代码打印结果是__________(需要写上分析思路)
// #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;
// }
// Created by black on 15/11/2.
// Copyright © 2015年 black. All rights reserved.
//
#include <stdio.h>
int main(int argc, const char * argv[]) {
/**
* 分析思路:
* 初始值 a = 5 ,b没有赋值
* 因为括号的优先级是最高的 所以先算括号里面的++a和a++
* 所以b = 6+6=12 a自增两次,所以a=7
*/
printf("打印结果为:\n");
printf("b=12,a=7\n");
return 0;
}
作者: jeffdy66 时间: 2015-11-7 00:28
b=(++a)+(a++) ; 首先分析一下这行代码, ++a 首先自增加1,变成6, 根据算术运算优先性,先算括号里面的表达式, 6+(a++)=6+6=12; 然后把a的值赋给B,此时B=12 , a的值为何等于7 ,因为表达式++a 此时为6, 然后后面表达式自增为1 为7
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |