關於sizeof()和strncpy的一點小體會

2021-04-30 22:01:41 字數 461 閱讀 6143

關於今天在論壇裡請教sizeof()的問題,有以下收穫:

(身邊的強人都去參加博創比賽去了,只能到論壇裡問了)

1、sizeof()不是函式,是運算子;

2、陣列和指標陣列的長度是不一樣的:

如果是char *m="liudehua";

sizeof(m)==4

如果是char m[120]="liudehua";

sizeof(m)==120

3、既然知道了上面這兩點,那麼關於字串賦值就沒問題了

char *m="liudehua";

char  n[120];

strncpy( n, m, sizeof(m));//錯誤賦值,得不到想要的,只能將"liud"賦給n;

strncpy( n, m, 10);//賦值正確,可以將"liudehua"賦給n,但這樣可能會浪費資源(暫時沒有不知道有什麼好方法可以解決這個問題)

關於strlen和sizeof的陷阱

一,strlen是乙個庫函式,計算指定的字串包含的字元個數,要求輸入的串必須以 0 結束,但計算的字元個數不包含 0 本身。例子 1,char sztest 100 注意這裡還沒進行初始化,裡面的資料是隨機的 strlen sztest 此時輸出的資料取決於陣列sztest裡面的 0 在什麼位置結束...

關於sizeof 和 strlen深坑全解析

大家都知道,sizeof和strlen可以用來獲取大小,但是有著不同的用法,這裡首先總結區別,最後根據sizeof 和 strlen 的具體事例來分析特別需要注意的事項。1.sizeofsizeof是操作符,strlen是函式。操作符的結果型別是size t,它在標頭檔案中typedef為unsig...

關於字串的sizeof 和strlen

wykxldz 這樣的乙個字串的型別是const char 所以我們在申明字串的時候可以使用這樣的形式 const char str 123456 printf lu n sizeof str printf lu n strlen str 控制台顯示的是8,6 注 指標佔的位元組數是8 其實我們也是...