1. 程式人生 > 其它 >sizeof和strlen本質區別

sizeof和strlen本質區別

sizeof定義

 sizeof 運算子。表示式 sizeof(type) 得到某個型別或某個變數在特定平臺上的準確儲存大小,返回值unsigned int 型別

strlen定義

strlen是個函式,函式原型:size_t strlen(const char *str),用來計算字串的實際長度(不包括‘\0'在內),函式的返回值size_t 為unsigned int 型別,

 例子:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define PI 3.14159265
const int
b = 50000; int main(void) { char a[] = "hello world"; int *c ="asfdgh"; unsigned int d = sizeof(c); printf("%ld,%ld,%ld,%ld",sizeof(c),strlen(c),sizeof(a),strlen(a)); return 0; }
執行結果:
8 6 12 11

int * 在64位作業系統記憶體空間是8byte,所以sizeof(a)=8

總結:

字串在計算機記憶體中儲存時,系統會自動新增一個‘/0'作為字串結束符,sizeof 計算結果包括’\0'在內,而strlen 計算結果遇到‘/0'就結束,計算的結果不包括’/0';