下载后可任意编辑笔试题 4 嵌入式必须答对的笔试题下载后可任意编辑嵌入式 linux 工程师面试题目 C 语言基础部分(面试必须掌握)下面的题目必须全部答对才给分:这部分是 ANSI C 的一些问题,题目的前提是必须都答对,看似很变态,可是细想一下,这些都是最基础的,虽然我们在使用她们的时候会犯这样那样的错误,可是最终目的是不犯错误不是么,那么好,从最基础的开始
1、 如何在 C 中初始化一个字符数组
这个问题看似很简单,可是我们要将最简单的问题用最严谨的态度来对待
关键的地方:初始化、字符型、数组
最简单的方法是 char array[];
这个问题看似解决了,可是在初始化上 仿 佛 还 欠 缺 点 什 么 , 个 人 认 为 : char array[5]={'1','2','3','4','5'};或者char array[5]={"12345"};或者char array[2][10]={"China","Beijing"}; 可 能 更 符 合 “ 初 始化”的意思
2、 如何在 C 中为一个数组分配空间
最简单的方法是:char array[5];意思是分配给数组 array 一个 5 个字节的空间
可是我们要知道在 C 中数组其实就是一个名字,其实质含义下载后可任意编辑就是指针,比如 char array[];是到底分配的多少空间
因此我们要将其分成为两种不同的形式给出答案:一种是栈的形式:char array[5];一 种 是 堆 的 形 式 : char *array; array=(char *)malloc(5);//C++: array=new char[5];堆和栈的含义其实我也没弄太透彻,改天明白了再发一篇
我们要明白的是,第一种形式空间分配的大小