
版权声明:本文为博主原创文章,未经博主允许不得转载。
面试这个词很有意思,比如”我去面试了“,从这句话中无法弄清楚是你去面试别人,还是你去找工作被别人面试了呢?说笑了。
下面就是我面试(面别人和被别人面)过程中遇到的一些不太实用的方法总结一下:
1. 交换两个数值
方法1: 利用中间变量
- // int a, b;
- {
- ...
- int tmp=a;
- a=b;
- b=tmp;
- ...
- }
- // int a, b;
- {
- ...
- a^=b;
- b^=a;
- a^=b;
- ...
- }
- // int a, b;
- {
- ...
- a+=b;
- b=a-b;
- a=a-b;
- ...
- }
2. 某一个程序中有一个初始化的全局static变量,在某一个函数中有一个与之同名的全局初始化的局部static变量,请问如何在这个函数外访问该变量的值。
- #include <stdio.h>
- static int val = 10;
- void fun()
- {
- static int val = 20;
- printf("val in fun() = %d\n", val);
- }
- int main(int argc, char *argv[])
- {
- printf("%d\n", *((&val)));
- printf("%d\n", *((&val)+1));
- ++*((&val)+1);
- fun();
- }
- output:
- 10
- 20
- val in fun() = 21