嵌入式研发工程师面试试题大全(ANSI CC++方面的知识 )

一.ANSI C/C++方面的知识
1、简答题。
1、 如何在C中初始化一个字符数组。
逐个字符没有考虑到字符串结束符‘\0’,所以会产生意想不到的错误。
  比如以下程序:
int main()
{
       int i;
    char p[6] = {''''a'''',''''b'''',''''c'''',''''d'''',''''e'''',''''f''''};
    printf("%s",p);
    while(1);
    return 0;
}
运行后显示: abcdef@
问题3:const & 指针
类型声明中const用来修饰一个常量,有如下两种写法,那么,请问,下面分别用const限定不可变的内容是什么?    
1)、const在前面
a. const int nValue; //nValue是const
把类型int撇开,变量nValue作为一个整体,因此 nValue是const型;
b. const char *pContent; //*pContent是const, pContent可变
把类型char撇开,变量 *pContent作为一个整体,因此 *pContent是const型;
c. const (char *) pContent;//pContent是const,*pContent可变
把类型char * 撇开,注意这里(char * )是一个整体,而变量 pContent作为一个整体,因此 pContent是const型;
d. char* const pContent; //pContent是const,*pContent可变
const与变量间没有类型,变量 pContent作为一个整体,因此 pContent是const型;
e. const char* const pContent; //pContent和*pContent都是const
这里分为两层,外层:把类型char 撇开,变量 * const pContent作为一个整体,因此 * pContent是const型;内层:没有类型,因此 pContent 是 const 型。
2)、const在后面,与上面的声明对等 (这类型更容易判断)
a.  int const nValue; // nValue是const
    const与变量之间没有类型,const后面那部分整体是const型,因此nValue是const型
b.  char const * pContent;// *pContent是const, pContent可变
    const与变量之间没有类型,const后面那部分整体是const型,因此 * pContent是const型
c.  (char *) const pContent;//pContent是const,*pContent可变
    const与变量之间没有类型,const后面那部分整体是const型,因此 pContent是const型
d.  char* const pContent;// pContent是const,*pContent可变
    const与变量之间没有类型,const后面那部分整体是const型,因此 pContent是const型
e.  char const* const pContent;// pContent和*pContent都是const
分为两层,外层:撇开类型char,const后面那部分整体* const pContent是const型,因此 * pContent是const型;内层:const与pContent之间无类型,因此pContent是const型。
  
C++中CONST
  C中常用:#define 变量名 变量值定义一个值替代,然而却有个致命缺点:缺乏类型检测机制,这样预处理理在C++中成为可能引发错误的隐患,于是引入const.
const使用:
1. 用于指针的两种情况:const是一个左结合的类型修饰符.
  int const *A; //A可变,*A不可变
  int *const A; //A不可变,*A可变
2.限定函数的传递值参数:
void function(const int Var); //传递过来的参数在函数内不可以改变.
3.限定函数返回值型.
const int function(); //此时const无意义
const myclassname function(); //函数返回自定义类型myclassname.


20、C语言的volatile的含义是什么。使用时会对编译器有什么暗示。
         volatile的本意是“易变的”
由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化,但有可能会读脏数据。当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。
精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
下面是volatile变量的几个例子:
    1). 并行设备的硬件寄存器(如:状态寄存器)
    2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
    3). 多线程应用中被几个任务共享的变量
        嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用这些都要求volatile变量。不懂得volatile内容将会带来灾难。
Volatile的完全扩展:
    1). 一个参数既可以是const还可以是volatile吗?解释为什么。
是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。
    2). 一个指针可以是volatile 吗?解释为什么。
是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。
    3). 下面的函数有什么错误:
         int square(volatile int *ptr)
         {
              return *ptr * *ptr;
         }
    这段代码的有个恶作剧。这段代码的目的是用来返指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:
    int square(volatile int *ptr)
    {
         int a,b;
         a = *ptr;
         b = *ptr;
         return a * b;
     }
    由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下:
     long square(volatile int *ptr)
     {
            int a;
            a = *ptr;
            return a * a;
     }
@声明:用户在本网站发布的内容仅为发布者个人的立场或观点,并不代表本网站的立场或观点。作为内容的发布者,需自行对所发布内容负责,因发布内容引发的一切纠纷,由该内容的发布者承担全部法律及连带责任。本网站不承担任何法律及连带责任。本网站有权利对涉嫌违反相关法律、法规内容进行相应处置。如内容存在侵权问题,请与本网站联系删除。
回复

使用道具 举报

相关推荐
  • 蓝页猎头好文推荐——企业人事招聘面试技巧大全!

    一、招聘前期准备   1、掌握人员需求   • 准确的职位描述:岗位名称,职责范围,任职要求,工作关系,到岗时间,薪资待遇,前期是否有工作人员,是否进行过招聘等。   • 胜任能力分析:素质能力、工作能力、性格特征等 ...

  • 注册安全工程师有考的必要吗?

    在公司也混了几年了,公司里人缘还不错,能力还行吧,就是没有上层关系,想通过考证晋升,注安是我们公司没有的,考了升个主管应该是没问题,但是想问问,安全这一块,有冲的必要吗,因为一般都抓得很紧,比较累。 ...

  • 深圳BYD工程院和北京央企二级子公司 怎么选?

    小弟我是今年六月毕业 的小硕 c9本硕能源类专业,不过本硕之间有三年间隔,之前在厂里打过两年工,所以年龄有点大了,28周岁。现在有两个选项: 1深圳BYD工程院。岗位是整车热管理,与硕士课题不太对口,具体工作内容未知,薪 ...

  • 仓管员考试题

    一、选择题(每空2.5分,共计25分 单双选) 1、物资库仓管员从岗位职责划分,大致分为( )、( )、实物仓管员和输单员。 A、司磅员 B、打单员 C、收货仓管员 D、理货员 2、物资仓管员在平台收货时, ...

  • 仓管员绩效考核试题

    仓管员绩效考核试题 一、岗位职责以下每空(1分),共20分 1、严格执行入库手续,物料或成品进仓时,仓管人员要 、 、 是否与货单一致,物料入库时还应该核对是否按采购订单的 和要求的 交 ...

  • 物流师考试模拟试题单项选择汇总

    1、企业为购进原材料、配套件、外协件而发生的相关费用,称为(D)。 A、销售成本 B、库存成本 C、生产成本 D、采购成本 2、根据品种的市场性质和需求性质来选择合适的采购战略,这属于(B)。 A、供应商战略 B、采 ...

  • 仓管员职责和面试题

    仓管员职责和仓管员面试题 请问物流行业仓管员职责和仓管员面试题?

  • 面试题:为什么觉得自己能够在这个职位上取得成就?

      分析:这是一个相当宽泛的问题,它给求职者提供了一个机会,可以让求职者表明自己的热情和挑战欲。对这个问题的回答将为面试人在判断求职者是否对这个职位有足够的动力和自信心方面提供关键信息。   错误回答:我不知道 ...

  • 招聘面试情商测试试题

    招聘面试情商测试试题招聘面试情商测试试题

  • 仓管试题,仓管考试,仓管员考试试题,仓管员面试试题下载

    仓管试题,仓管考试,仓管员考试试题,仓管员面试试题下载 69929

  • 联系客服 关注微信 下载APP 返回顶部 返回列表