strlen與sizeof的區別

2021-09-11 08:22:57 字數 1170 閱讀 3016

在了解strlen與sizeof的區別之前,先來了解下字元陣列:

char a = ;//不含空字元』\0』。

char a1 = ;//顯式包含空字元』\0』。

char a2 = 「c++」; //自動新增 『\0』字串結束的空字元 a1=a2。

char a3[3] = 「c++」;//錯誤,沒有空間存放空字元』\0』。

一、strlen與sizeof的區別:

strlen(a) == 3 , sizeof(a) == 3

strlen(a1) == 3 , sizeof(a1) == 4//sizeof加』\0』的長度,strlen()不加

strlen(a2) == 3 , sizeof(a2) == 4//sizeof加』\0』的長度,strlen()不加

char a4[10] = 「c++」;

strlen(a4) == 3 , sizeof(a4) == 10

char a5 = 「c++\n」;

strlen(a5) == 4 , sizeof(a4) == 5// 『\n』佔乙個字元,sizeof加』\0』的長度,strlen()不加

二、**示例:

#include 「stdafx.h」  

#include 「stdio.h」

#include 「string.h」

intmain

(int argc,

char

* ar**)

; a4=

sizeof

(a);

//a4=字元個數*位元組數

printf

(」a4=

%d\n」,a4)

;return0;

}

sizeof:

#include 「stdafx.h」  

#include 「stdio.h」

void

fun(

int a[

100]

)void

fun1

(int

*p)int

main

(int argc,

char

* ar**)

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是求字...