C++面试宝典第6题:访问数组和联合体元素

题目

        阅读下面的代码段,并给出程序的输出。

        (1)访问数组元素。

int a[] = {61, 62, 63, 64, 65, 66};
int *p = (int *)(&a + 1);
printf("%d, %d\n", *(a + 1), *(p - 1));

        (2)访问联合体元素。

union
{short i;char x[2];
}a;a.x[0] = 10;
a.x[1] = 1;
printf("%d\n", a.i);

解析

        这道题主要考察应聘者对数组、指针、联合体及内存布局的理解。

        先来看第一道小题,访问数组中的元素。在C/C++语言中,数组的首地址指的是数组的第一个元素的地址。这个地址可以通过数组名加上一个下标来访问,其中下标从0开始。比如:有一个整数数组int arr[5],那么数组的首地址可以通过&arr[0]来获取,这个地址指向数组的第一个元素arr[0]。注意:数组名本身就是数组的首地址,故arr和&arr[0]是等价的。

        在本小题中,a是数组首元素地址,a + 1为数组第二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283314.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机期末复习

前言 发现很多人都写了单片机原理及接口技术课后习题的答案,但是也就只写了答案而已,可能是他们觉得太简单的缘故吧,我这里对此进行一下我近段时间复习的总结,本篇博客只展示选择题、填空题和判断题的答案,仅供参考&a…

八股文打卡day2——计算机网络(2)

面试题:讲一下三次握手的过程? 我的回答: 1.客户端发送报文段到服务器,主动建立连接。这个报文段中SYN标志位表示:这个报文段是用于连接的,此时SYN标志位设置为1。其中初始序列号字段包含了客户端的初始序…

05 动态渲染数据

概述 实际上动态渲染数据&#xff0c;在《使用CDN开发Vue3项目》中就已经学习过了&#xff0c;核心代码如下&#xff1a; <div id"vue-app">{{text}}</div> <script src"https://cdn.staticfile.org/vue/3.0.5/vue.global.js"></sc…

flask简单应用-1

目标&#xff1a; 做一个搜索网页&#xff0c;搜索当前路径下是否含有指定关键字的文件&#xff0c;如果有就列出来&#xff0c;没有返回消息 第一步&#xff1a;我们需要先显示一个搜索页面&#xff0c;页面上需要有一个可以输入的对话框&#xff0c;一个按钮执行搜索 建立ht…

【接口技术】课堂word补充习题和讲解(乱序)

DAC & ADC 1&#xff1a;B 梯形电阻网络中的电阻是R和2R&#xff0c;只用了2种阻值 2&#xff1a;B LSBFSR/(2^n)5V / 2^10 5V / 1024 0.0048828125V 4.883mV 3&#xff1a;输入寄存器、DAC寄存器、D/A转换器 如下图所示 中断向量表&#xff0c;CSIP 多个元件互连的例题…

Web前端-HTML(表格与表单)

文章目录 1.表格与表单1.1 概述 2.表格 table2.1 表格概述2.2. 创建表格2.3 表格属性2.4. 表头单元格标签th2.5 表格标题caption&#xff08;了解&#xff09;2.6 合并单元格(难点)2.7 总结表格 3. 表单标签(重点)3.1 概述3.2 form表单3.3 input 控件(重点)type 属性value属性值…

mysql原理--InnoDB的表空间

1.概述 通过前边儿的内容大家知道&#xff0c; 表空间 是一个抽象的概念。 对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为 表名.ibd 的实际文件。可以把表空间想象成被切分为许许…

Redis设计与实现之事务

一、事务 Redis 通过 MULTI 、DISCARD 、EXEC 和 WATCH 四个命令来实现事务功能&#xff0c;本章首先讨 论使用 MULTI 、DISCARD 和 EXEC 三个命令实现的一般事务&#xff0c;然后再来讨论带有 WATCH 的事务的实现。 因为事务的安全性也非常重要&#xff0c;所以本章最后通过…

Qt/C++音视频开发60-坐标拾取/按下鼠标获取矩形区域/转换到视频源真实坐标

一、前言 通过在通道画面上拾取鼠标按下的坐标&#xff0c;然后鼠标移动&#xff0c;直到松开&#xff0c;根据松开的坐标和按下的坐标&#xff0c;绘制一个矩形区域&#xff0c;作为热点或者需要电子放大的区域&#xff0c;拿到这个坐标区域&#xff0c;用途非常多&#xff0…

VSCode 常用的快捷键和技巧系列(2)

一、如何让VSCode工程树显示图标 第一步&#xff1a;安装 快捷键 CtrlP &#xff0c;输入 ext install vscode-icons &#xff0c;然后点击安装插件 第二步&#xff1a;配置 安装成功后&#xff0c;点击Reload重新加载。 然后配置&#xff0c;当前图标使用VsCode-Icons Go…

devc++添加C++11编译环境

在菜单栏中找到工具&#xff0c;点开 -> 找到编译选项&#xff0c;点击。 进入编译器选项 在编译时加入以下命令前面打上勾&#xff0c;并在编译时加入以下命令的内容框内输入-stdc11。 用C11特有的特性进行测试&#xff0c;看是否成功。

C# 基本桌面编程(二)

一、前言 本章为C# 基本桌面编程技术的第二节也是最后一节。前一节在下面这个链接 C# 基本桌面编程&#xff08;一&#xff09;https://blog.csdn.net/qq_71897293/article/details/135024535?spm1001.2014.3001.5502 二、控件布局 1 叠放顺序 在WPF当中布局&#xff0c;通…