一:示例
eg1:
下列**:
char
buffer[256];
char *pbuffer = buffer;
cout<<"sizeof(buffer) = "
<
cout<<"sizeof(pbuffer) = "
<
其執行結果為:
eg2:
簡單說明:
sizeof
:gives the amount of storage,in bytes, associated with a variable or a type
.returns a value of type size_t
strlen
:get the length of a string.
size_t
strlen( const char *string) parameter
string:null-terminated string.returns the number of characters in string, excluding the terminal null.
二、sizeof
深入理解。
short f();
printf("%d/n", sizeof(f()));
輸出的結果是
sizeof(short),即2
。 char str[20]="0123456789";
int a=strlen(str); //a=10;
int b=sizeof(str); //
而b=20;
fun(char [8]);
fun(char );
都等價於
fun(char *)
在c++
裡傳遞陣列永遠都是傳遞指向陣列首元素的指標,編譯器不知道陣列的大小如果想在函式內知道陣列的大小,
需要這樣做:進入函式後用
memcpy
拷貝出來,長度由另乙個形參傳進去
fun(unsiged char *p1, int len)
三:sizeof
使用場合。
void
*malloc(size_t
size);
size_t
fread(void*
ptr, size_t
size, size_t
nmemb, file
*stream);
void
*memset(void
*s, int
c, sizeof(s);
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是求字...