當前位置:首頁 » 編程語言 » c語言sizeofstrlen
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言sizeofstrlen

發布時間: 2022-01-30 01:38:05

c語言中sizeof和strlen函數區別在哪

1、操作

strlen(char*)函數求的是字元串的實際長度,它求得方法是從開始到遇到第一個'',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首地址一直找下去,直到遇到''停止。

而sizeof()返回的是變數聲明後所佔的內存數,不是實際長度。

2、參數類型

sizeof可以用類型做參數,strlen只能用char*做參數,且必須是以''''結尾的。

3、類型

sizeof是操作符(關鍵字),strlen是函數。

(1)c語言sizeofstrlen擴展閱讀

strlen函數原型:

size_t strlen(const char *string)

size_t 是無符號整數的別名,在vs2008編譯器中可以查看其宏定義。

功能:

其功能是獲取字元串的長度。

返回值:

在MSDN文檔中查看strlen函數的返回值,敘述如下。

Each of these functions returns the number of characters in string, excluding the terminal NULL. No return value is reserved to indicate an error.

每個函數都返回字元串中的字元數,不包括終端NULL。不保留返回值以指示錯誤。

參數:

Null-terminated string

空終止字元串, 字元串標准庫提供的頭文件中包含操作以空字元結尾的字元串(null-terminated string)的函數。


參考資料:網路——strlen

㈡ C語言中sizeof與strlen的區別是什麼

一、指代不同

1、sizeof:用於獲取字元串的長度,是處理字元串的重要工具。

2、strlen:所作的是一個計數器的工作。

二、規則不同

1、sizeof:可用於任何變數名、類型名或常量值,當用於變數名(不是數組名)或常量時,不需要用圓括弧。

2、strlen:從內存的某個位置(可以是字元串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字元串結束符''為止,然後返回計數器值。


三、用法不同

1、sizeof:sizeof( type_name ); // sizeof( 類型 );編譯時起作用,而不是運行時。

2、strlen:externunsignedintstrlen(char*s);返回s的長度,不包括結束符NULL。

㈢ C語言中,sizeof和strlen都是表示字元串長度的嗎誰能告訴我它們兩者的區別~~

sizeof 計算的是數據在內存中存放的長度,單位是「位元組」,可以對任何數據類型做運算,而且它是一個運算符(和+、-、*、\類似);當對字元串計算時,包含末尾的"\0";當對字元數組操作時,返回的是數組的總的長度,也就是當把數組作為參數傳遞給sizeof時是不會退化的。strlen 計算的是字元串的長度,單位是「字元」,只能對字元串運算,而且它是函數(不是運算符),計算時,不包含末尾的"\0";當對字元數組操作時,返回的是數組總存放的字元串的實際長度(也就是\0之前的),也就是當把數組作為參數傳遞給strlen時是會退化成char*指針的。例如:char* str = "Hello!";sizeof(str)值為7;strlen(str)值為6;char str[20] = "Hello!";sizeof(str)值為20;strlen(str)值為6;

㈣ c語言中strlen 與sizeof有什麼區別

strlen 是返回所定義字元串的長度,而sizeof是用來取得變數或類型所佔用的內存空間大小的。

㈤ c語言中sizeof()和strlen()用法上有什麼區別呢

strlen可以得到字元串長度。sizeof可以得到內存位元組長度
數組有10個char型成員,自然有10的位元組長度

㈥ C語言strlen sizeof

1.
sizeof(exp)/sizeof(char)輸入總是10,這是對的。sizeof返回的是exp的大小,exp是個大小為10的char的數組,大小為10*sizeof(char)。
2.
strlen(exp)的意思是從exp即exp[0]開始往後數,直到遇到NULL的個數。由於你只對第二個元素和第三個元素賦值,其他元素是隨機的,所以輸出可能是15。在我電腦上也可能是其他的結果。

㈦ sizeof和strlen在c語言的區別是什麼

sizeof和strlen在c語言的區別如下:

1、類型不同:sizeof操作符的結果類型是size_t,它在頭文件中typedef為unsigned int類型。該類型保證能容納實現所建立的最大對象的位元組大小。

2、性質不同:sizeof是算符,strlen是函數。

3、參數不同:sizeof可以用類型做參數,strlen只能用char*做參數,且必須是以''''結尾的。sizeof還可以用函數做參數。

4、退化情況不同:數組做sizeof的參數不退化,傳遞給strlen就退化為指針了。

㈧ c語言的sizeofstrlen什麼意思

函數
sizeof(T)
返回指定參數
T
所佔內存的位元組數象
x
這個數組因為初始化的是一個字元串除了把
string
的內容寫入外還要再加一個
\\0
的停止符所以長度一共是
7
個位元組與個中所存儲的內容無關。strlen(x)
返回的是字元串從第一個字元到
\\0
之前的字元個數\\0
等於
0所以
x0=0
相當於
x0=\'\\0\'。所以輸出為:7
0

㈨ sizeof和strlen在c語言的區別是什麼

sizeof和strlen在c語言的區別是:用法不同。

sizeof操作符的結果類型是size_t,它在頭文件中typedef為unsigned int類型。該類型保證能容納實現所建立的最大對象的位元組大小。sizeof是算符,strlen是函數。sizeof可以用類型做參數,strlen只能用char*做參數,且必須是以「\0」結尾的。

strlen的結果要在運行的時候才能計算出來,時用來計算字元串的長度,不是類型占內存的大小。sizeof後如果是類型必須加括弧,如果是變數名可以不加括弧。這是因為sizeof是個操作符不是個函數。

函數調用:

sizeof(函數名())

sizeof也可以對一個函數調用求值,其結果是函數返回類型的大小,函數並不會被調用,舉例來說定義如下函數:

int myprint ()

{undefined

printf(「hello 」);

return 0;

int main()

{undefined

printf(「%d」,sizeof(mypaint()));

return 0;

結果只列印函數返回類型的sizeof值,並沒有列印hello說明函數myprint並沒有調用。

㈩ sizeof和strlen在c語言的區別是什麼

區別如下:

1、指代上的區別

(1)sizeof:用來獲取字元串長度的導引,是處理字元串的重要工具。

(2)strlen:做的是一個計數器。

2、用法上的區別

(1)sizeof:sizeof( type_name ); // sizeof(type); 在編譯時有效,而不是在運行時有效。

(2)strlen:externunsignedintstrlen(char*s); 返回s的長度,不包含終止符NULL。

規則上的區別

(1)sizeof:可用於任何變數名,類型名或常量值。 當用於變數名(不是數組名)或常量時,不需要括弧。

(2)strlen:從內存的某個特定位置開始掃描(可以是字元串的開頭,中間的某個位置,甚至是不確定的存儲區域),直到第一個字元串結束字元' 0'為止 ,然後返回計數器值。