在C语言程序开发中,程序员可以在定义数组时对其初始化,并且允许只对一部份元素初始化,未显式给定初值的元素将被置零,例如:
int a[5] = {1, 2};文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
这行C语言代码执行终了后,数组 a 中的元素将是 1,2,0,0,0。这是C语言数组的基本知识点。然而遗憾的是,从我昨天在圈子里分享的一个面试题来看,仍有部份C语言程序员认为未显式给定初值的数组元素值是不决义的。下面是国外某嵌入式公司的面试题,有人在 StackOverflow 上发问,感觉比较成心思:文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
国外某嵌入式公司的面试题文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
题外话文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
似乎我每一次分享一些面试题都有人觉得我是“孔乙己”,纠结这些面试题没成心义。然而真的没成心义吗?首先要明确的是,分析面试题其实不是推崇面试题中的C语言代码写法,而是讨论其暗地里暗藏的基础知识。例如,如果读者不能明白C语言数组初始化方面的性质,是没法得出这个题目的正确谜底的。文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
事实上,不少公司招聘时,都有一些面试题或者笔试题看起来很奇异,很不相符标准的开发规范,于是有些程序员就认为做这样的面试题是完整没成心义的。然而其实呢,这些题目可能来自公司内部的某个项目的某次重大 bug,短短的面试期间完全的描写该 bug 不太可能,只好将其抽象成一个看起来很“生僻”的面试题,考察求职者。文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
考察求职者文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
如果求职者基础不扎实,之后可能还会犯一样的过错,这是不允许的。因而,对于咱们求职者来讲,平时拿到这些面试题,首先想到的应当是它暗地里暗藏哪些知识点,查漏补缺才是正道。文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
分析文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
有不少乐于动手的读者看到题目后,当即在自己的装备上编写相关C语言代码并编译执行,然而似乎得到了两种谜底,如下所示,这是如何回事呢?文章源自微观生活(93wg.com)微观生活-https://93wg.com/15683.html
1, 0, 0, 0, 0// 或者1, 0, 1, 0, 0
其实,本题主要考察两个知识点,一是前面提到的C语言数组初始化,再就是C语言语句“序列点关于“这是国外某嵌入式公司的C语言面试题,不少程序员都做错了”的详细内容,希望对大家有所帮助!
评论