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

C說話中關於sizeof 和 strlen的差別剖析

編輯:關於C++

C說話中關於sizeof 和 strlen的差別剖析。本站提示廣大學習愛好者:(C說話中關於sizeof 和 strlen的差別剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中關於sizeof 和 strlen的差別剖析正文


1、編譯時盤算運算符sizeof,可用類型或變量做參數,盤算占用內存的年夜小。sizeof後若是類型必需加括弧,若是變量名可不加括弧。sizeof(x)可用來界說數組維數如:


printf("%d\n", sizeof(short));

    輸入的成果為短整型的長度2。用構造類型或變量做參數時,sizeof 前往現實的年夜小,當用於靜態數組時,sizeof 前往全體數組的尺寸。sizeof 操作符不克不及前往靜態地被分配了的數組或內部的數組的尺寸

2、運轉時盤算strlen,只能用char*做參數,且必需是以''\0''開頭的。盤算的是字符串的長度。如:


char str[20]="0123456789";
int a=strlen(str); // 成果為a=10
int b=sizeof(str); // 成果b=20;

3、處置靜態數組:


char str[20]="0123456789";
int a=strlen(str); // a=10; strlen 盤算字符串的長度,以\0'為字符串停止標志。
int b=sizeof(str); // b=20; sizeof 盤算的則是分派的數組str[20] 所占的內存空間的年夜小,不受外面存儲的內容影響。

4、處置指針:


char* ss = "0123456789";
sizeof(ss) // 成果4,

ss是指向字符串常量的字符指針,sizeof 取得的是一個指針所占的空間。sizeof(*ss) 成果1,*ss是第一個字符 其實就是取得了字符串的第一名'0' 所占的內存空間,是char類型的,占用1字節。strlen(ss)= 10,若要取得這個字符串的長度,則必定要應用 strlen

以上所述就是關於sizeof 和 strlen差別的全體內容了,願望年夜家可以或許愛好

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