天天看点

这是我见过的最坑的C语言试题

Void func(char* in)
{
	Uint8 len2 = sizeof(in);
	Printf(“len2 = %u\r\n”,len2);
}
Main()
{
	Char a[10]={1,2,3,4,5,6,7,8,9,10};
	Uint8 len1 = sizeof(a);
	Printf(“len1 = %u\r\n”, len1);
	Func(a);
}
           

请写出 len1 与 len2 的值。

答:len1= ;len2= ;

int* Fun(void)
{
	static int a;   
	int b;           
	int* c = malloc(sizeof(int)) ;
	return &b;
}
           

问题1:上面函数中 a,b,*c变量所占用的内存空间位于哪里?

问题2:本函数是否存在风险。若有,请简要说明。

提升以下乘、除、余运算的效率,在右侧写出优化后运算方式:

(1)a=b*2          =》
(2)a=b/4          =》
(3)a=b%8         =》
(4)a=b/8*8+b%4   =》
(5)a=b*15        =》
           

继续阅读