C语言中的字符占空间大小

2025-03-21 23:39:07
推荐回答(5个)
回答(1):

这个要看字符数是什么数据类型,可以用sizeof(类型)操作符来测试字节数。
1、英文字母:如果是char 型,那么是占用1个字节,8位。如果是string型,应该是两个字节,16位,因为末尾还有个\0字符。
比如:
char c = 'a';//它占用一个字符
char c[] = "a";//占用两个。
char c[] = "abcde";//占用4+1 = 5 个,结尾有一个'\0'

2、数字:有很多种类,从小到大分别为:
short、int、float、long、double
字节为:1个、2个、4个、8个、8个
位数为:8位、16位、32位、64位、64位

3、汉字:理论上说,一个汉字占用两个字节,16位。比如:中国,就占用4个字节,例如:
char c[] = "中国";//占用4+1 = 5个字符

回答(2):

union所有的成员分享同一内存
char u1[5]的内存小于long u2[2]的内存,
所以ua占用的内存为long u2[2]的大小

两个函数?可能是你没有弄明白整个结构体的结构
可以这样理解:
union uu
{ //定义共用体
char u1[5]; long u2[2]
}

struct aa
{ //结构体共有四个成员
int r1;
double r2;
float r3;
uu ua;//着个成员的类型是公用体uu型 ua占用八个字节
}

aa mya;//定义结构体aa的一个变量mya
//以上和你的等价

回答(3):

22
以struct定义的是结构体,结构体变量所占用的内存长度是成员的内存长度之和.每个成员分别占有其自己的内存单元.
以union定义的是共用体变量,共用体变量所占的内存长度等于最和的成员的长度.
因为union是包含在struct里的,所以他是struct的一部分,所以些题共占22个空间

回答(4):

共用体与结构体不同,它的成员共同占有一块内存区域
共用体的大小取决于它最大成员的大小
u1[5]是5字节 u2[2]是8字节
所以共用体占8字节

哪两个? struct? union? sizeof?
你是说后面跟着的ua和mya?
定义一个共用体变量ua和结构体变量mya

回答(5):

char c[] = "abcde";//占用5+1 =6 个,结尾有一个'\0'