美文网首页
亲身经历的C语言面试题1

亲身经历的C语言面试题1

作者: 那个混子 | 来源:发表于2020-10-12 19:18 被阅读0次

今天早上又视频面试了一家公司,下面分享一下人家给我的面试题。

题目 :一、写出如下程序的输出结果。 #include <iostream.h> //标准的输入输出流头文件

#pragma pack(8)      / /8字节对齐方式  
struct example1       //定义结构体  
{      
 short a;    
  long b;  };  
struct example2 
  {     
  char c;     
  example1 struct1;   
   short e;  };  
#pragma pack()    /*取消指定对齐,恢复缺省对齐,等价于#pragma pack(pop)*/    

int main(int argc, char* argv[])  
{  
  example2 struct2;      
  cout << sizeof(example1) << endl;     
 cout << sizeof(example2) << endl;     
 cout << (unsigned int)(&struct2.struct1) - (unsigned int)(&struct2) << endl;    
  return 0;  
}

核心考点

考察的是变量对齐方式设置,和结构体的大小计算

涉及的内容:

1、iostream.h头文件:标准的输入输出流头文件。用来声明一些用来在标准输入输出设备上进行输入输出操作的对象。

(1)cin>>"要输入的内容"
(2)cout<<"要输出的内容"

2、对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,long类型,其自身对齐值为4,double,long long类型,其自身对齐值为8,单位字节

在32位平台下,基础常见的数据类型大小:
char: 8位储存单元--1字节
int: 32位储存单元---4字节数
float:4字节数
short:2字节数
long: 4字节数
double:8字节数
long double:8字节数

3、#pragma pack(8) 和 #pragma pack()

编译器中提供了#pragma pack(n)来设定变量以n字节对齐方式。
n字节对齐就是说变量存放的起始地址的偏移量有两种情况:
第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,
第二、如果n小于该变量的类型所占用的字节数,那么偏移量为n的倍数,不用满足默认的对齐方式。结构的总大小也有个约束条件,
分下面两种情况:
如果n大于所有成员变量类型所占用的字节数,那么结构的总大小必须为占用空间最大的变量占用的空间数的倍数;
否则必须为n的倍数。

4、sizeof() 函数

在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。

4、其他知识点

结构体或者类的自身对齐值:其数据成员中自身对齐值最大的那个值。
数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。

答案?

大家看了上面的题,觉得答案是多少呢?在下面讨论区打出你们的答案..............

相关文章

  • C语言面试题收集

    参考: C语言十二道有趣的面试题(1) C语言十二道有趣的面试题(2) exit()和_exit()的区别 C语言...

  • iOS常见面试题总结

    1.objective-c常见面试题:1、**OC **语言的基本特点OC 语言是 C 语言的一个超集,只是在 C...

  • 亲身经历的C语言面试题1

    今天早上又视频面试了一家公司,下面分享一下人家给我的面试题。 题目 :一、写出如下程序的输出结果。 #incl...

  • C语言面试54题

    C语言面试54题 ​ 大家好,这期呢,我们谈一下c语言的面试题。 第1题,c语言有哪些核心的特征? 可移植性很强。...

  • iOS面试题及答案

    C语言相关面试题 1.static有什么用途? 答案:在C语言中,static主要定义全局静态变量,定义局部静态变...

  • iOS面试题大全(附带答案)

    C语言相关面试题 1.static有什么用途? 答案:在C语言中,static主要定义全局静态变量,定义局部静态变...

  • 嵌入式面试题目

    C语言面试题目一、选择题1.考查类型转换main(){struct node{int a;int b;int c;...

  • 编程面试题:有趣的12个C语言面试题,看看你能做几个?

    转载自头条号丨C语言编程开发 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个! 1...

  • 2022年iOS面试题1

    一 iOS初级面试题及答案 1.为什么说Objective-C是一门动态的语言? 1.object-c类的类型和数...

  • IOS面试(2018)

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

网友评论

      本文标题:亲身经历的C语言面试题1

      本文链接:https://www.haomeiwen.com/subject/kisluktx.html