學習Linux C程式設計 strlen及unsigned問題
阿新 • • 發佈:2019-02-18
strlen
用法:#include <string.h>
功能:計算字串s的(unsigned int型)長度
說明:返回s的長度,不包括結束符NULL。
注意點遇到\0終止,例如:
int a[1000]={0,1};
printf("%d",strlen(a[0]));
輸出為0,因為是\0
unsigned
直接舉例:
#include <stdio.h>
int main()
{
unsigned int a=3;
unsignedint b;
b = a*(-1);
printf("%u", a );
return
}
b的值不為-3而為4294967287。為什麼呢?其實很簡單,例如b=-1在計算機中的資料位是1111111 11111111 11111111 11111111,注意是資料位,是要去掉符號位的,所以是31位,a是無符號型別的整數,將b賦給a,自然a就是1111111 11111111 11111111 11111111,也是31位第一位補0,轉換成十進位制就是4294967287,它也是unsigned int範圍的最大上限(0~4294967288-1),-1是最大的負整數轉換成正整數當然也是最大了,這個應該很好理解了。