面试实例:用两个宏定义来计算 s=(x*y)1/2
解:#include
#include
main()
#define s1(a,b) ((a) *(b))
#define s(c) sqrt(c )
{
float result;
int n1,n2;
scanf(“%d”,%n1);
scanf(“%d”,&n2);
result=s1(n1,n2);
result=s(result);
printf(“%f\n”,result);
}
拓展:
指向指针数组的指针
指针的指针另一用法旧处理指针数组,
面试实例:用两个宏定义来计算 s=(x*y)1/2
。有些程序员喜欢用指针数组来代替多维数组,一个常见的用法就是处理字符串,资料共享平台
《面试实例:用两个宏定义来计算 s=(x*y)1/2》(http://meiwen.anslib.com)。char *Names[]=
{
Bill,
Sam,
Jim,
Paul,
Charles,
0
};
main()
{
char **nm=Names;
while(*nm!=0) printf(%s\n,*nm++);
}
先用字符型指针数组Names的地址来初始化指针nm。每次printf()的调用都首先传递指针nm指向的字符型指针,然后对nm进行自增运算使其指向数组的下一个元素(还是指针)。注意完成上述认为的语法为*nm++,它首先取得指针指向的内容,然后使指针自增。
注意数组中的`最后一个元素被初始化为0,while循环以次来判断是否到了数组末尾。具有零值的指针常常被用做循环数组的终止符。程序员称零值指针为空指针(NULL)。采用空指针作为终止符,在树种增删元素时,就不必改动遍历数组的代码,因为此时数组仍然以空指针作为结束。
【面试实例:用两个宏定义来计算 s=(x*y)1/2】相关文章:
5.要求升迁面试实例
6.会计面试实例技巧