C++面试宝典第6题:访问数组和联合体元素
2023-12-18 06:41:40
题目
阅读下面的代码段,并给出程序的输出。
(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为数组第二
文章来源:https://blog.csdn.net/hope_wisdom/article/details/135045873
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!