sizeof運算子需要注意的問題

2021-04-13 22:25:00 字數 582 閱讀 7698

sizeof運算子用於取得「東西」的大小,以位元組為單位。比如sizeof(char)就返回1,表明char資料型別佔乙個位元組。又如:

char

str ="

12345";

printf(

"%d ", 

sizeof

(str));

//等於6

字串str佔六個位元組,這樣做是可行的。如果strlen(str)一把,則等於5,因為strlen返回的是字串的字元數,不包含結尾的/0。可是用sizeof丈量字串大小時的確需要注意了,比如下面的程式碼就有問題。

void

func(

const

char

const

*pstr)

void

main(

void

)void

fun(struct date 

*input)

intmain(

void

)...

返回結果是12,沒什麼問題,不過就是用的時候要加上*別忘了。可以看出字串是比較特殊的。strlen在任何情況下大家都可以放心使用。

使用 strpos 需要注意 運算子

首先應該知道 strpos 函式可能返回布林值 false,但也可能返回乙個與 false 等值的非布林值,例如 0 或者 我們應使用 運算子來測試本函式的返回值。判斷字串是否存在的函式 function strexists haystack,needle test mystring abc fin...

位運算子 需要注意的地方

本人第乙個部落格,以後會經常寫 此時的我就像戲台上的老將軍 以免第二次犯同樣的錯誤。因為考研的原因,好久沒有coding了,略感生疏。瘋玩了十幾天,決定拿起書本,紮實地重新看一遍專業書。從開始學習程式設計起,就不是很注重位運算,因為覺得可以用別的方法代替。後來發現有些東西用位運算處理更有效率。這裡主...

C 運算子過載需要注意的地方

有時候自己寫乙個類,需要過載運算子,但對於一些操作符 如 等 可以在類裡寫,也可以在類外寫。那麼 c 編譯器會去怎麼呼叫呢?首先,我們知道,過載 機制可以允許多個函式有相同的函式名,但引數列表必須不同。c 編譯器經過名字改編 name mangling 可以在呼叫時依據所傳實參找到 最符合 的函式實...