下载后可任意编辑笔试题 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];堆和栈的含义其实我也没弄太透彻,改天明白了再发一篇。我们要明白的是,第一种形式空间分配的大小可能会受操作系统的限制,比如 windows 会限制在 2M;第二种形式成空间分配很灵活,想分配多少分配多少,只要 RAM 够大。3、 如何初始化一个指针数组。首先明确一个概念,就是指向数组的指针,和存放指针的数组。指向数组的指针:char (*array)[5];含义是一个指向存放 5 个字符的数组的指针。存放指针的数组:char *array[5];含义是一个数组中存放了 5 个指向字符型数据的指针。根据题意,我理解为初始化一个存放指针的数组,char *array[2]={"China","Beijing"};其含义是初始化了一个有两个指向字符型数据的指下载后可任意编辑针 的 数 组 , 这 两 个 指 针 分 别 指 向 字 符串"China"和"Beijing"。4、如何定义一个有 10 个元素的整数型指针数组。既然只是定义而不是初始化,那就很简单且没有争议了:int *array[10];。5、 s[10]的另外一...