牛客網C 刷題十一

2021-10-03 08:36:04 字數 921 閱讀 8115

以下為windows nt下的32位c++程式,請計算sizeof的值

void func (

char str[

100]

)void

*p =

malloc

(100);

sizeof

( p )

=?

參***:

sizeof( str ) = 4

sizeof ( p ) = 4

【剖析】

func ( char str[100] )函式中陣列名作為函式形參時,在函式體內,陣列名失去了本身的內涵,僅僅只是乙個指標;在失去其內涵的同時,它還失去了其常量特性,const屬性也沒了。可以作自增、自減等操作,可以被修改。

陣列名的本質如下:

(1)陣列名指代一種資料結構,這種資料結構就是陣列;

例如:

char str[10]

;cout << sizeof

(str) << endl;

輸出結果為10,str指代資料結構char[10]。

(2)陣列名可以轉換為指向其指代實體的指標,而且是乙個指標常量,不能作自增、自減等操作,不能被修改;

char str[10]

;

str++

;//編譯出錯,提示str不是左值

(3)陣列名作為函式形參時,淪為普通指標。

windows nt 32位平台下,指標的長度(占用記憶體的大小)為4位元組,故sizeof( str ) 、sizeof ( p ) 都為4。

知識點:

sizeof對陣列,得到整個陣列所佔空間大小。

sizeof對指標,得到指標本身所佔空間大小。

當陣列作為函式的形參時,實際傳遞的指向陣列首元素的指標。

牛客網C 刷題

今天刷了些c 的題,就其中物件導向分享一下我的感悟。首先區分一下物件導向和面向過程 物件導向是首先抽象出各種物件 各種類 把資料和方法都封裝在物件中 類 然後各個物件之間發生相互作用。面向過程是將問題分解成若干步驟 動作 每個步驟 動作 用乙個函式來實現,在使用的時候,將資料傳遞給這些函式。stl有...

牛客網刷題

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 立華奏在學習初中數學的時候遇到了這樣一道大水題 設箱子內有 n 個球,其中給 m 個球打上標記,設一次摸球摸到每乙個球的概率均等,求一次摸球摸到打標記的球的概率 e...

牛客網刷題

時間限制 c c 2秒,其他語言4秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld 立華奏是乙個剛剛開始學習 oi 的萌新。最近,實力強大的 qingyu 當選了 iods 9102 的出題人。眾所周知,iods 是一場極其毒瘤的比賽。為了在這次...