練習4.28
寫一段程式,輸出每一種內建型別所佔空間的大小。
解答:這裡可以用sizeof來輸出你想得到的型別的大小。
練習4.29
推斷下面**的輸出結果並說明理由。實際執行這段程式,結果和你想象的一樣嗎?如果不一樣,為什麼?
int x[10]; int *p = x;
cout << sizeof(x)/sizeof(*x) << endl;
cout << sizeof(p)/sizeof(*p) << endl;
解答:這裡會輸出,
因為這裡x[10]是分配出空間的,然後其長度除以第乙個元素的大小,就是空間中元素的數量。
而p是乙個指標,在32bit程式中,其大小為4個位元組,在64bit程式中,是8個位元組。
然後,在除以乙個int的大小值,如果是32bit,應該就得到的是1。
這裡和我預期的有些不一樣,因為我使用的是64bit系統,本來以為這裡會輸出2的。這裡應該和我建立的專案是有關係的,win32的控制台,應該按照32bit進行編譯的。
練習4.30
根據4.12節中的表,在下述表示式的適當位置加上括號,使得加上括號之後表示式的含義與原來的含義相同。
(a) sizeof x + y
(b) sizeof p->mem[i]
(c) sizeof a < b
(d) sizeof f()
解答:(a) sizeof (x )+ y
(b) sizeof (p->mem[i])
(c) sizeof (a) < b
(d) sizeof (f())
C PRIMER第四章練習
4.1 先乘除後加減,105 4.2a vec.begin b vec.begin 1 4.3可以接受,可以提高編譯器效率,潛在缺陷只要注意不讓表示式指向並修改同一物件就可以忽略 4.4 12 3 4 5 15 24 4 2 91 4.5a 86 b 18 c 0d 2 4.6if ival 2 為...
第四章課後練習
第一題 從鍵盤接受乙個正整數列表,以 1結束,分別計算列表中奇數和偶數的和 lst while 1 num int input if num 1 break sum1 0 sum2 0 for i in lst if i 2 0 sum1 i else sum2 i print 基數 偶數 form...
C Primer Plus 程式設計練習第四章
1 include int main char b 10 printf 請輸入您的姓名 scanf s,s a,b getchar printf 歡迎您 s,s 請輸入您的姓名 scanf s a getchar int len strlen a printf d n len printf s n ...