求两道面试题答案
来源:百度知道 编辑:UC知道 时间:2024/05/17 07:39:36
写出运行结果:
1.{// test1
char str[] = "world"; cout << sizeof(str) << ": ";
char *p = str; cout << sizeof(p) << ": ";
char i = 10; cout << sizeof(i) << ": ";
void *pp = malloc(10); cout << sizeof(p) << endl;
}
2.struct A
{
char t:4;
char k:4;
unsigned short i:8;
unsigned long m;
}
sizeof(A)=?(不考虑边界对齐)
1.{// test1
char str[] = "world"; cout << sizeof(str) << ": ";
char *p = str; cout << sizeof(p) << ": ";
char i = 10; cout << sizeof(i) << ": ";
void *pp = malloc(10); cout << sizeof(p) << endl;
}
2.struct A
{
char t:4;
char k:4;
unsigned short i:8;
unsigned long m;
}
sizeof(A)=?(不考虑边界对齐)
1.
char str[] = "world"; cout << sizeof(str) << ": ";
-求的是"world"字符串所占字节,是5个+1个'\0'=6字节
char *p = str; cout << sizeof(p) << ": ";
-求的是p指针所占字节,指针固长是4字节
char i = 10; cout << sizeof(i) << ": ";
-求的是char类型的i所占字节,char型占1字节
void *pp = malloc(10); cout << sizeof(p) << endl;
-求的是pp指针所占字节,同2号,也是指针固长4字节
}
2.sizeof(A)=?(不考虑边界对齐)
-char(1字节)+char(1字节)+shor(2字节)+long(4字节)=8字节
1.
6: 4: 1 :4
2.
6
第一道题1、考虑字符串的结尾符,则其长度为5+1;
2、指针是一个地址其长度为4;
3、整形长度为1;
4、同2,也是一个指针;
第二道题应该为8。