C語言中,sizeof和strlen都是表示字串長度的嗎

2021-08-07 05:15:59 字數 655 閱讀 6152

1樓:匿名使用者

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;

2樓:匿名使用者

把是sizeof 是整個變數的大小 strlen 是字串的大小(strlen 是首地址進行計數直至遇到'\0' 停止計數):如char buffer[50]="hello world"; ("hello world" d字元後會追加個'\0'字元)printf("%d, %d \n",sizeof(buffer),strlen(buffer)); 結果為50, 11

c語言中sizeof運算子有什麼作用

sizeof運算子 該運算子在編譯階段就已經起作用了。它以位元組為單位返回其運算元的大小。它的運算元可以是資料物件也可以是一個型別。如果是型別那麼運算元需要用圓括號括起來。如 sizeof int 4 擴充套件資料 c語言其他運算子 1 取模運算子 該運算子有個特性就是隻支援整數運算。它的作用就是用...

c語言中包含whilefor和,C語言中包含while for 和do while3種迴圈控制語句,其中什麼迴圈控制語句至少要執行一次迴圈體

do while迴圈至少執行一次迴圈體。因為它是先執行迴圈體,再判斷條件的,另兩個是先判斷條件 條件符合才執行迴圈體 do while 要先執行do,然後再判斷while裡面的條件,如果條件成立則執行下一次do裡面的內容 do while語句會在不判斷執行條件的情況先首先執行一次 do while呀...

C語言一個關於sizeof和strlen的問題

2個意義不一樣的。strlen 是函式。引數為。chan 專門針對字串的。sizeof 是運算子,不是函式,可以這樣寫sizeofa,等等。strlen求字串的長度,不含字串結束標誌。因此strlen a sizeof求的是編譯器為陣列放分配的空間大小,一旦。chara 5 定義了,則就會分配5個位...