【笔试题】C语言结构体中,不同的数据类型在32位和64位下所占字节的区别
生活随笔
收集整理的這篇文章主要介紹了
【笔试题】C语言结构体中,不同的数据类型在32位和64位下所占字节的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
如下C程序,在64位處理器上運行后sz的值是什么?
struct st {int *p;int i;char a; }; int sz=sizeof(struct st);答案
16
解析
考點:
32位編譯器:
char :1個字節 char*(即指針變量): 4個字節(32位的尋址空間是2^32, 即32個bit,也就是4個字節。同理64位編譯器) short int : 2個字節 int: 4個字節 unsigned int : 4個字節 float: 4個字節 double: 8個字節 long: 4個字節 long long: 8個字節 unsigned long: 4個字節64位編譯器:
char :1個字節 char*(即指針變量): 8個字節 short int : 2個字節 int: 4個字節 unsigned int : 4個字節 float: 4個字節 double: 8個字節 long: 8個字節 long long: 8個字節 unsigned long: 8個字節此處指針先占用8字節。int占用4字節,滿足要求不用補齊,char占用一個字節,同時總的字節數必須滿足8的倍數即16。
總結
以上是生活随笔為你收集整理的【笔试题】C语言结构体中,不同的数据类型在32位和64位下所占字节的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Jmeter】压力测试工具 Jmete
- 下一篇: 【Python】利用graphviz和p