- 相关推荐
精心整理的关于c语言常考的笔试题
一、 想说一说关于集中数据类型的sizeof问题,这题出现率40%
sizeof就是求在内存总占多少字节的问题,最基本的char 1字节 short 2字节 int 4字节
任何的指针都是4字节 sizeof(数组名)=数组占的大小(这里必须注意虽然数组名可作为只想数组首地址的指针,但是sizeof(数组名)求得的不是指针的大小,而是数组大小)
还有就是sizeof(结构体) sizeof(联合体)
举两个例子 struct stu {
Char a;
Int b;
Char c;
};
struct teacher {
Char a;
Char c;
Int b;
};
Sizeof (stu) =12 ;内存中这样存储 char 空空空 int char 空空空
内存4字节对其问题
Sizeof (teacher) =8 ;内存中这样存储 char char空空 int
关于联合体
Union std{
Char a[10];
Int b[3];
}
Sizeof(std)=12; 联合体公用内存,取其中所占内存最大的元素为联合体所占内存
以下为Windows NT下的32位C++程序,请计算sizeof的值
char str[] = “Hello” ;
char *p = str ;
int n = 10;
1. 请计算
sizeof (str ) = 6
sizeof ( p ) = 4
sizeof ( n ) = 4
void Func ( char str[100])
{
请计算
sizeof( str ) = 4
}
void *p = malloc( 100 );
请计算
sizeof ( p ) = 4
还有位段的问题如下
分析:
struct bit
{ int a:3;
int b:2;
int c:3;
};
int main()
{
bit s;
char *c=(char*)&s;
cout<
*c=0x99;
cout << s.a <
int a=-1;
printf("%x",a);
return 0;
}
输出为什么是
4
1
-1
-4
ffffffff
因为0x99在内存中表示为 100 11 001 , a = 001, b = 11, c = 100
当c为有符合数时, c = 100, 最高1为表示c为负数,负数在计算机用补码表示,所以c = -4;同理
b = -1;
当c为有符合数时, c = 100,即 c = 4,同理 b = 3
【精心整理的c语言常考的笔试题】相关文章:
中考常考的成语09-18
精选的高考常考成语10-25
C/C++笔试题目大全08-22
经典的高考常考成语大全09-28
经典高考常考成语大全10-11
小学常考的成语大全08-28
高考常考成语大全【精选】08-01
高考常考的成语大全及解释06-01
德勤CLUB笔试题整理09-03
有关中考常考的成语及解释06-04