- 相關推薦
精心整理的關于c語言常考的筆試題
一、 想說一說關于集中數據類型的sizeof問題,這題出現(xiàn)率40%
sizeof就是求在內存總占多少字節(jié)的問題,最基本的char 1字節(jié) short 2字節(jié) int 4字節(jié)
任何的指針都是4字節(jié) sizeof(數組名)=數組占的大小(這里必須注意雖然數組名可作為只想數組首地址的指針,但是sizeof(數組名)求得的不是指針的大小,而是數組大小)
還有就是sizeof(結構體) sizeof(聯(lián)合體)
舉兩個例子 struct stu {
Char a;
Int b;
Char c;
};
struct teacher {
Char a;
Char c;
Int b;
};
Sizeof (stu) =12 ;內存中這樣存儲 char 空空空 int char 空空空
內存4字節(jié)對其問題
Sizeof (teacher) =8 ;內存中這樣存儲 char char空空 int
關于聯(lián)合體
Union std{
Char a[10];
Int b[3];
}
Sizeof(std)=12; 聯(lián)合體公用內存,取其中所占內存最大的元素為聯(lián)合體所占內存
以下為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語言?嫉墓P試題】相關文章:
中考?嫉某烧Z09-18
精選的高考?汲烧Z10-25
C/C++筆試題目大全08-22
經典的高考?汲烧Z大全09-28
經典高考?汲烧Z大全10-11
小學?嫉某烧Z大全08-28
高考常考成語大全【精選】08-01
高考常考的成語大全及解釋06-01
德勤CLUB筆試題整理09-03
有關中考常考的成語及解釋06-04