1. 程式人生 > >C語言 兩個小知識點

C語言 兩個小知識點

text sizeof 包括 5% har 賦值 知識 ring include

strlen 函數原型

extern unsigned int strlen(char *s); 在Visual C++ 6.0中,原型為size_t strlen(const char *string); ,其中size_t實際上是unsigned int,在VC6.0中可以看到這樣的代碼:typedef unsigned int size_t; 。 頭文件:string.h 格式:strlen (字符數組名) 功能:計算給定字符串的(unsigned int型)長度,不包括‘\0‘在內 說明:返回s的長度,不包括結束符NULL。 舉例:
//char*s="Gold";
char s[100]="Gold"; printf("%s has %d chars",s,strlen(s));

結果:兩者的結果都一樣。技術分享

那如何測試字節數組的大小呢?結論是無法使用strlen函數,只能通過間接的辦法求:

#include <stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{   
    unsigned char sendStr[32] ={128,154,178,201,221,237,248,255,255,252,243
,229,211,190,166,141, 115,90,66,45,27,13,4,1,1,8,19,35,55,78,102,128}; //默認發送串1(實際為0),1,8 printf("數字: %d \n",sizeof(sendStr)/sizeof(unsigned char)); return 0; }

通過總的字節數除以單個元素的大小進行求解。


unsigned char 數字範圍為 0-255;如果賦值一個數為256,那麽數據溢出,顯示結果為0

C語言 兩個小知識點