int * a[10];int (*a)[10]int (*a)(int);int (*a[10])(int);
struct A{int a;char b;float c;struct A d;double e;};sizeof(A)
wap( int* p1,int* p2 ){int * p;*p = *p1;*p1 = *p2;*p2 = *p;}
void swap(int *pa, int *pb){int tmp;tmp = *pa;*pa = *pb;*pb = tmp;}
(unsigned int*)0x100000 = 1234;*((void (*)( ))0x100000)();(void (*)())0x100000 //首先要将0x100000强制转换成函数指针*((void (*)())0x100000)(); //然后再调用它:
8
用#define声明一个常数,表明1年中有多少秒(忽略闰年问题)?答案:
# SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL9
写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个?答案:
# MIN(A,B) ((A) <= (B) ? (A) : (B))10
Heap与Stack的差别?答案:Heap是堆,Stack是栈。
Stack的空间由系统自动分配/释放,Heap上的空间手动分配/释放。
Stack空间有限,Heap是很大的自由存储区,malloc函数分配的内存空间即在堆上。
网上经典例子:
int a = 0; //全局初始化区char *p1;//全局未初始化区void main(void){int b; //栈char s[] = "abc"; //栈char *p2; //栈char *p3 = "123456"; //123456\0在常量区,p3在栈上static int c =0; //全局(静态)初始化区p1 = (char *)malloc(10); //堆p2 = (char *)malloc(20); //堆}
11
下面的声明都是什么意思?代码:
const int a;int const a;const int *a;int * const a;int const * a const;
12
sizeof和strlen的区别?答案:sizeof是运算符,在编译时即计算好了;而strlen是函数,要在运行时才能计算。
编排 | strongerHuang
微信公 众 号 | 嵌入式专栏