關於字串的sizeof 和strlen

2021-08-13 14:25:43 字數 1139 閱讀 5543

「wykxldz」這樣的乙個字串的型別是const char*,所以我們在申明字串的時候可以使用這樣的形式:

const

char *str = "123456";

printf("%lu\n", sizeof( str ) );

printf("%lu\n", strlen( str ) );

控制台顯示的是8,6

注:指標佔的位元組數是8

其實我們也是可以省略const識別符號來申明這樣的乙個字串的:

char *str = "123456";

printf("%lu\n", sizeof( str ) );

printf("%lu\n", strlen( str ) );

控制台顯示的是7,6

注:字串的最後乙個字元是」\0」

當然我們都知道字串也是可以用字元陣列來表示的,所以申明字串我們還有一種形式:

char str = "123456";

printf("%lu\n", sizeof( str ) );

printf("%lu\n", strlen( str ) );

控制台顯示的是7,6

為了有對比,所以我們用const char 來申明字串,來看看const是對sizeof的影響:

const

char str = "123456";

printf("%lu\n", sizeof( str ) );

printf("%lu\n", strlen( str ) );

控制台顯示的是7,6

所以,我們可以看出strlen的結果是沒有什麼大的歧義的,然而sizeof在面對const char*的時候發生了不同,這時sizeof返回的值是指標所佔的位元組長度,而不是指標所指向的字串的長度.

關於sizeof對字串計算

1 include 2 include 3 include 4 int main int argc,char argv 5 13 printf array sizeof sss is d n sizeof sss 14 printf array strlen sss is d n strlen ss...

strlen 和sizeof 計算字串長度

c語言字串長度的計算是程式設計時常用到的,也是求職時必考的一項。c語言本身不限制字串的長度,因而程式必須掃瞄完整個字串後才能確定字串的長度。在程式裡,一般會用strlen 函式或sizeof來獲取乙個字串的長度,但這2種方法獲取的字串的長度其實是不一樣,我們用如下函式進行測試 cpp view pl...

關於字元陣列和字串

關於字元陣列和字串 引用 火未燃說 char a 5 和char a 10 有效字元5個,0 表示結束,china共5個字元,但在記憶體佔6個位元組,a 10 佔足五個後遇到 0 結束 結束符 系統會自帶的,不用畫蛇添腳 加上也無所謂 by eviloctal 首先說火未燃關於空字元系統自己加的說法...