程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> sizeof和strlen的區別

sizeof和strlen的區別

編輯:關於C語言
 

1.sizeof操作符的結果類型是size_t,它在頭文件typedef定義為unsigned int 類型,該類型能容納實現所建立的最大對象的字節大小。

2.sizeof是運算符,strlen是函數。

3.sizeof 可以用類型做參數,strlen只能用char * 做參數,且必須是以“\0”結尾的。sizeof還可以用函數做參數。

4.數組做sizeof 的參數不退化,傳遞給strlen就退化為指針。

5.大部分編譯程序在編譯的售後就把sizeof 計算過了,是類型或者是變量的長度。這就是sizeof 可以用來定義數組維數的原因。

6.strlen 的結果要在運行的時候才能計算出來,用來計算字符串的長度,而不是類型占內存的大小。

7.sizeof 後如果是類型必須加括號,如果是變量名可以不加括號

8.當使用了一個結構類型或者變量時,sizeof 返回實際的大小。當使用一靜態的空間數組時,sizeof 返回全部數組的尺寸,sizeof 操作不能返回動態分配的數組或外部的數組的尺寸。數組作為參數傳給函數時傳的是指針而不是數組,傳遞的是數組的首地址。

9.計算結構變量的大小就必須討論數據對齊問題。為了使CPU 存取的速度最快,C++處理數據時經常把結構變量中的成員的大小按照4或8俄倍數計算。#pragma pack(n)。

10.sizeof 不能用於函數類型、不完全類型或者位字段。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved