91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中的strlen()和sizeof()怎么使用

發布時間:2023-03-07 11:17:57 來源:億速云 閱讀:117 作者:iii 欄目:開發技術

這篇文章主要介紹“C語言中的strlen()和sizeof()怎么使用”,在日常操作中,相信很多人在C語言中的strlen()和sizeof()怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言中的strlen()和sizeof()怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

C語言中的strlen()和sizeof()對比

在C語言中,沒有字符串這種變量類型,一般用兩種方法實現。
一是用雙引號生成常量字符串再賦值給一個指針,指針指向的是該常量字符串的首字符地址;
二是利用字符數組,把字符存儲在數組中。值得注意的是,利用字符數組創建字符串的時候記得把’\0’存進去(‘\0’本身是一個字符,占一個字節),因為很多對字符進行操作的庫函數或多或少都跟’\0’有關系,或者說’\0’是字符串結束的官方標志。

字符串
char arr[]={'a','a','a','a','a','a'}
char *str = "aaaaaa"

定義:
**1. strlen函數:**計算的是字符串str的長度,從字符的首地址開始遍歷,以 ‘\0’ 為結束標志,然后將計算的長度返回,計算的長度并不包含’\0’。

當我們遇到“\0"時我們就要停止讀取,此時“\0"前字符的個數就是字符串的長度,注意:這里的“\0"只是結束標志,僅僅告訴我們strlen函數讀取到這里就要停止了,“\0"不算做一個字符!!!

**2. sizeof函數:**相比strlen函數,sizeof就簡單多了,sizeof其實就是一個運算符,主要用來計算所占空間字節的大小。

指針字節:
指針 16位 2個字節
指針 32位 4個字節
指針 64位 8個字節

32位系統:
char 1個字節
short 2個字節
int 2個字節
long 4個字節
char* 4個字節
int* 4個字節
int** 4個字節

64位系統:
char 1個字節
short 2個字節
int 4個字節(x 2)
long 8個字節(x 2)
char* 4個字節
int* 4個字節
int** 4個字節

  • 字符串常量放在靜態存儲區,為只讀,不能再通過指針修改,例如chr *p=“xiaolong”

  • strlen遇到\0結束,長度不包括\0

  • sizeof計算占用多少字節時,\0也包含在內

1. strlen()

int main () {
	
	char *str="xiaolong";
	printf("%d\n",strlen(str));
	return 0;	
}

輸出:8
#include <stdio.h>
#include <string.h>
int main () {
	
	char str[]="xiaolong";
	printf("%d\n",strlen(str));
	return 0;	
}
輸出:8
#include <string.h>
int main () {
	
	char str[10]="xiaolong";
	printf("%d\n",strlen(str));
	return 0;	
}

雖然數組大小是10,但是編譯器自動在xiaolong后面添加了\0 ,因此長度不是10而是8
輸出:8

2. sizeof()

#include <stdio.h>
#include <string.h>
int main () {
	
	char str[10]="xiaolong";
	printf("%d\n",sizeof(str));
	return 0;	
}

指定大小為n的char數組無論如何都是占用n個字節,例如此處10字節
輸出:10
#include <stdio.h>
#include <string.h>
int main () {
	
	char *str="xiaolong";
	printf("%d\n",sizeof(str));
	return 0;	
}

由于是指針,32位機器指針占4個字節
輸出:4
#include <stdio.h>
#include <string.h>
int main () {
	
	char str[]="xiaolong";
	printf("%d\n",sizeof(str));
	return 0;	
}

結果不是8而是9,因為默認在后面添加了一個\0,  \0也算一個字節
輸出:9

1.size_t 的定義
size_t是一種機器相關的無符號類型,它被設計的足夠大以便能表示內存中任意對象的大小。
在C語言中頭文件為stddef.h,在C++語言中頭文件為cstddef。
size_t 是sizeof的返回類型,在64位中是unsigned long int,在32位中是unsigned int。
2.使用
size_t類型通常用于循環、數組索引、大小的存儲和地址運算。數組的下標通常定義為size_t類型。size_t可以跨平臺,并且具有高代碼的可移植性、有效性或者可讀性。

到此,關于“C語言中的strlen()和sizeof()怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

筠连县| 叙永县| 金寨县| 婺源县| 万安县| 班玛县| 尚义县| 临邑县| 鸡泽县| 郸城县| 贡山| 长岭县| 张家界市| 邢台市| 拜泉县| 拉孜县| 获嘉县| 龙州县| 思茅市| 安阳市| 乡宁县| 永兴县| 新民市| 卫辉市| 开化县| 桑植县| 锦屏县| 信阳市| 乐都县| 霍林郭勒市| 通江县| 香河县| 三门峡市| 盘山县| 全椒县| 平利县| 辽宁省| 雷州市| 苍山县| 阳江市| 汝州市|