C語言入門篇--sizeof與strlen基礎理論
1.sizeof
(1)若求字符串占據(jù) 空間 的大小,包括字符串結尾處默認的'\0'。
(2)若所求不是字符串的大小,求的是數(shù)組、類型等的大小,不用考慮'\0',因為不是字符串,在結尾處無默認的'\0'。
(3)若明顯出現(xiàn)'\0',則統(tǒng)計。
(4)返回一個變量或者類型的大?。ㄒ宰止?jié)為單位)
2.strlen
求字符串內容的大小,統(tǒng)計字符串的字符個數(shù),遇到'\0'停止統(tǒng)計,不統(tǒng)計'\0'。
3.知識點
3.1 對于數(shù)組
sizeof
:結果就是數(shù)組大小。
strlen
:在計算時會遍歷整個數(shù)組,往后遍歷的時候不一定能碰到'\0',會存在越界問題,
要么程序崩潰要么產生隨機值,但結果一定至少是數(shù)組長度。
3.1.1 數(shù)組中無'\0'
#include <stdio.h> int main() { char s[] = { 'a', 'b', 'c' }; printf("%d\n", sizeof(s)); printf("%d\n", strlen(s));//隨機值 return 0; }
3.1.2 數(shù)組有'\0'
(1)'\0'在最后
#include <stdio.h> int main() { char s[] = { 'a', 'b', 'c', '\0' }; printf("%d\n", sizeof(s)); printf("%d\n", strlen(s)); return 0; }
(2) '\0'在中間
#include <stdio.h> int main() { char s[] = { 'a', 'b','\0','c', }; printf("%d\n", sizeof(s)); printf("%d\n", strlen(s)); return 0; }
3.2 對于字符串
C語言中能夠保存字符串的,只有char類型的數(shù)組。
3.2.1 字符串無明顯的'\0'
#include <stdio.h> int main() { printf("%d\n", sizeof("abcd")); printf("%d\n", strlen("abcd")); return 0; }
、
3.2.2 字符串有明顯的'\0'
(1)'\0'在最后
#include <stdio.h> int main() { printf("%d\n", sizeof("abd\0")); printf("%d\n", strlen("abd\0")); return 0; }
(2)'\0'在中間
#include <stdio.h> int main() { printf("%d\n", sizeof("abc\0d")); printf("%d\n", strlen("ab\0d")); return 0; }
以上就是C語言入門篇--sizeof與strlen基礎理論的詳細內容,更多關于C語言基礎的資料請關注腳本之家其它相關文章!
相關文章
C/C++中的?Qt?StandardItemModel?數(shù)據(jù)模型應用解析
QStandardItemModel?是標準的以項數(shù)據(jù)為單位的基于M/V模型的一種標準數(shù)據(jù)管理方式,本文給大家介紹C/C++中的?Qt?StandardItemModel?數(shù)據(jù)模型應用解析,感興趣的朋友跟隨小編一起看看吧2021-12-12