嵌入式C语言面试参考知识点(2)

导读: 5.sizeof是一个运算符,运算结果是类型的大小(内存字节数); strlen()是一个函数,返回值为一个字符串的长度。 6.写出short"char"unsigned char的表示范围? 1字节

丝瓜网小编提示,记得把"嵌入式C语言面试参考知识点(2)"分享给大家!

5.sizeof是一个运算符,运算结果是类型的大小(内存字节数);

strlen()是一个函数,返回值为一个字符串的长度。

6.写出short"char"unsigned char的表示范围?

1字节=8个位,在32位系统中一个char类型一般为8个bit,所以能存储的数据范围为-128~127,而unsigned char则是0~255,字符型所存储的数据是用来表示字符的,例如ASCⅡ或Unicode。Signed char的范围是-127到127,short -32767~+32768(2Bytes)。

7.编写一个strcpy()函数

void strcpy(char *strDest" char *strSrc)

{

while((*strDest++ = *strSrc++)! = "0");

}

推荐另一种:为了实现链式操作,将目的地址返回:

char * strcpy(char *strDest" const char *strSrc)

{

assert((strDest != NULL) && (strSrc != NULL));

char *address = strDest;

while((*strDest++ = *strSrc++) != "0");

return address;

}

8.内存的分配方式有几种"他们的区别"各举例。

(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量;

(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集;

(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也最多。

9.const的用法,以及声明const变量与宏的区别。

const的用法有四种:参数、返回值、函数"用const修饰变量将限定变量为只读,该变量值不允许被改变。使用const还可以节省内存空间。define:定义预编译时处理的宏;只进行简单的字符替换,无类型检测const:定义程序中的常量,编译时处理;常量修饰符,把变量定义为常量。

丝瓜网 crfgs.com