1. i=8的值为8,如下联想面试题
int i=(j=4,k=8,l=16,m=32); printf("%d",
i); //输出为32
在g++测试中
if(i=0)false
if(i=9)true
2.写出float x 与“零值”比较的if语句。
答 、if(x>0.000001&&x<-0.000001)
这道题完全看不懂。x为0值是什么?
float x=0;吗?
if(x==0) g++测试也能成功比较啊!
3.
含参数的宏与函数的优缺点。
含参数的宏优点:
省去了函数调用的开销,运行效率高.
含参数的缺点:
由于宏本质上是字符串的替换,所有可能会由于一些参数的副作用导致得出
错误的结果.
如:
#define max(a, b) ( ((a) > (b)) ? (a) : (b) )
如果程序中出现这样的调用: max(a++, b);
将导致a被计算2次,从而可能得到错误的结果,而函数调用不会出现这种问题.
另外,如果程序中有多次宏替换的话,可能导致代码体积变大.
函数的优点是:
没有带参数宏可能导致的副作用,计算的正确性较宏更有保证.
函数调用的缺点:
函数调用需要一些参数,返回地址等入栈,出栈的开销,效率没有宏函数高.