第四章 4 9節練習

2021-06-26 10:02:57 字數 800 閱讀 8765

練習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 ...