strlen與sizeof的區別

2021-08-20 21:39:26 字數 1178 閱讀 2787

一、strlen與sizeof的區別:

1、strlen計算字串的具體長度(只能是字串),不包括字串結束符。返回的是字元個數。

2、sizeof計算宣告後所佔的記憶體數(位元組大小),不是實際長度。

3、sizeof是乙個取位元組運算子,而strlen是個函式。

4、sizeof的返回值=字元個數*字元所佔的位元組數,字元實際長度小於定義的長度,此時字元個數就等於定義的長度。若未給出定義的大小,分類討論,對於字串陣列,字元大 小等於實際的字元個數+1;對於整型陣列,字元個數為實際的字元個數。字串每個字元佔1個位元組,整型資料每個字元佔的位元組數需根據系統的位數類確定,32位佔4個位元組。       

二、**示例:

[cpp]view plain

copy

print

?

#include 「stdafx.h」

#include 「stdio.h」

#include 「string.h」

int main(int argc, char* argv)  

;  a4=sizeof(a);//a4=字元個數*位元組數

printf(」a4=%d\n」,a4);  

return 0;  

}  

#include "stdafx.h"

int main(int argc, char* argv)

;a4=sizeof(a);//a4=字元個數*位元組數

printf("a4=%d\n",a4);

return 0;}

注意下面的長度:

[cpp]view plain

copy

print?

#include 「stdafx.h」

#include 「stdio.h」

void fun(int a[100])  

void fun1(int *p)  

int main(int argc, char* argv)  

#include "stdafx.h"
#include "stdio.h" void fun(int a[100]) void fun1(int *p) int main(int argc, char* argv)

sizeof求位元組以及與strlen的區別

例子一 根據以下條件進行計算 1 結構體的大小等於結構體內最大成員大小的整數倍 2 結構體內的成員的首位址相對於結構體首位址的偏移量是其型別大小的整數倍,比如說double型成員相對於結構體的首位址的位址 偏移量應該是8的倍數。include include using namespace std ...

C語言中的strlen與sizeof的區別

sizeof與strlen是有著本質的區別,sizeof是求資料型別所佔的空間大小,而strlen是求字串的長度,字串以 0結尾。區別如下 1 sizeof是乙個c語言中的乙個單目運算子,而strlen是乙個函式,用來計算字串的長度。2 sizeof求的是資料型別所佔空間的大小,而strlen是求字...

C語言中的strlen與sizeof的區別

sizeof與strlen是有著本質的區別,sizeof是求資料型別所佔的空間大小,而strlen是求字串的長度,字串以 0結尾。區別如下 1 sizeof是乙個c語言中的乙個單目運算子,而strlen是乙個函式,用來計算字串的長度。2 sizeof求的是資料型別所佔空間的大小,而strlen是求字...