i++
来源:互联网 发布:c语言出现null怎么办 编辑:程序博客网 时间:2024/04/28 12:33
面试题1:what will be the output of the following code?
int i=3,j=4;i?i++:++j;printf("%d %d\n",i,j);
A.3 3 B.4 4 C.3 4 D.4 3
解析:
i?i++:j++的意思是说如果问好前面的i是真,则进行i++,否则进行++j。由于i是3,所以是真,执行i++,j不变化。所以答案是4 和4
如果i?i++:++j 换做0?i++:++j,则答案就是3和5
答案:B
面试题2:What will be the output of the following C code?
#define product(x) (x*x)int main(){int i=3,j,k;j=product(i++);k=product(++i);printf("j=%d,k=%d",j,k);return 0;}
解析:
遇到这样有宏定义的题一般就是将宏定义展开,product(i++)=i++*i++; i =3,所以j等于9,此时i已经累加为5.
product(++i)要求先对i进行累加,这样累加后i等于7。
答案:9,49
面试题3:如果有 int a=5,b=3;执行 !a&&b++后a和b的值都是多少
解析:
这是表达式运算问题。因为!a运算结束后,表达式的值一定为假,那么&&后面的表达式不会再进行计算了。
结果:5,3
- I
- I
- ++i
- I
- I
- i
- ++i
- i++
- (++i) + (++i) + (++i) + (++i)
- i++
- i
- i
- I++,I--,++I,--I
- I
- i++
- i++
- I
- ++i,--i,i++,i--
- Win32多线程程序设计(一)
- Java栈与堆
- oracle之神奇的游标
- 记事本
- Symbol Paths
- i++
- NYOJ36——最长公共子序列
- ARM_STM32f303开发笔记(一)
- 我使用过的Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式
- 什么是大男人?
- OJ平台下的输出图形,可惜平台通不过
- 使用SecureCRT在远程主机和本地之间传输文件
- 7-0——————找错之静态数据成员
- settings源码中显示所有进程流程