欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C語言char類型的存儲-創(chuàng)新互聯(lián)

目錄
  • char是如何存儲的
  • char的類型
  • char的取值范圍
  • 例題

專注于為中小企業(yè)提供網站建設、網站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)寧德免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。char是如何存儲的

字符型(char)用于儲存字符(character),如英文字母或標點。但是char類型在內存中并不是以字符的形式儲存,而是以ASII碼的形式儲存,也可以說char類型儲存的實際上是整數(shù)。所以char類型也被歸類為整形家族。

int main()
{char c = 'A';
	printf("%d\n", c);
	printf("%c\n", c);
	return 0;
}

從上面的代碼可以看出,因為char類型儲存的是整形,所以可以以正數(shù)的形式打印出
在這里插入圖片描述
打開內存窗口,也可以看出char是以整數(shù)的形式存儲:
在這里插入圖片描述
在這里插入圖片描述

既然知道char實際上是整形,所以也可以用int類型對char類型賦值

int main()
{char c = 65;
	printf("%d\n", c);
	printf("%c\n", c);
	return 0;
}

%d輸出就是輸出存儲在內存中的整形,以%c輸出就會輸出初始化時整數(shù)對應的ASKII碼字符
在這里插入圖片描述


其實關于由int類型對char賦值,以及對于char類型之間的運算,其實都會經歷一個操作叫做:整形提升,整形提升的詳細介紹在另一篇文章里👉點擊跳轉


char的類型

當聽到char的類型這句話時,第一反應應該會是:“char的類型不就是char嘛”
其實不然,char類型實際上分區(qū)為有符號的signed char和無符號的unsigned char

你可能對有無符號可能會陌生,對于有無符號我在另一篇文章里詳細介紹了👉點擊跳轉

對于char的有無符號位比較特殊的是:

  • charsigned char不一定等價
  • char默認是signed char還是unsigned char取決于編譯器
  • 在常見的編譯器里,char類型都默認為signed char

char的取值范圍

char類型占1個字節(jié),也就是8個比特位
所以char在內存中以00000000開始,逐漸遞增,到011111111,在增加到100000000,最后到11111111,如下圖:
在這里插入圖片描述

對于signed char來說:

00000000為0,逐漸遞增到011111111為127,因為第一位是符號位,所以再+1后的100000000為負數(shù)。
從最下面的開始算,11111111為-1,向上逐漸遞減,到100000001時,為-127,所以100000000為-128。
在這里插入圖片描述

所以,有符號的char的取值范圍是:-128 ~ 127

對于unsigned char來說:

當二進制最高好比特位的數(shù)為0時,無符號的char與有符號的char相同,當制最高好比特位的數(shù)為1時,因為是無符號的char,所以100000000為128,直到11111111為255
在這里插入圖片描述

所以,無符號的char的取值范圍是:0 ~ 255

下面這幅圖可以形象地表示出char類型數(shù)據(jù)范圍
在這里插入圖片描述

其實,這個圖還可以體現(xiàn)出char類型的“循環(huán)”
在給char類型賦值為超過它的取值范圍的值時,在char中的會按照圖中的循環(huán)方向進行存儲值,這其實是由于整形提升導致的,但是通過照著這個圖會比分析整形提升的過程更方便得出實際char中的值

int main()
{char c = 129;
	printf("%d", c);
	return 0;
}

這個程序輸出是-127,而不是129
在這里插入圖片描述

此代碼中,char類型默認是有符號的char,它的取值范圍是-128 ~ 127,但是給c賦值為129,超出了取值范圍
所以照著圖就可以看出:129超了127兩位,在圖里127向后走兩位就是-127

無符號整形也是如此。


例題

例1

//輸出什么?
#includeint main()
{char a= -1;
  signed char b=-1;
  unsigned char c=-1;
  printf("a=%d,b=%d,c=%d",a,b,c);
  return 0;
}

在這里charsigned char是一個意思,有符號的char取值范圍是-128 ~ 127,-1在這個范圍中,所以a,b 都輸出 -1
無符號的范圍是0 ~ 255,-1不在這個范圍里,根據(jù)起面的循環(huán)圖,c中存放的是255
在這里插入圖片描述

例2

//輸出結果是什么?
int main()
{char a[1000];
  int i;
  for(i=0; i<1000; i++)
 {a[i] = -1-i;
 }
  printf("%d",strlen(a));
  return 0;
}

答案是:255
因為strlen是遇到\0就結束,也就是遇到0就結束
a[i]的值從-1,-2,-3到-128,再到127,126……0
這之間一共有255個數(shù),所以結果是255

例3

//輸出結果是什么?
#includeunsigned char i = 0;
int main()
{for(i = 0;i<=255;i++)
 {printf("hello world\n");
 }
  return 0;
}

答案是:死循環(huán)

因為這里的i是無符號的char,范圍是0 ~255,隨著for循環(huán)的進行,當i==255時,再加1,i變?yōu)?,仍然小于255,所以是死循環(huán)


你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

當前文章:C語言char類型的存儲-創(chuàng)新互聯(lián)
網頁鏈接:http://aaarwkj.com/article40/dgoeeo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、全網營銷推廣、做網站、靜態(tài)網站虛擬主機、品牌網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設
日韩欧美乱码一区二区| 中文字幕精品一区二区介绍 | 国产精品第一区第二区| 91色老久久精品偷偷鲁无毒| 手机在线观看av网站| 亚洲天堂av福利在线观看| 九九久久九九精美视频| 免费av在线观看日韩| 亚洲综合色日本日b网| 国产原创剧情免费观看av| 欧美日韩亚洲中文综合网| 中文字幕乱码人妻一区二| 日韩一级黄色片在线播放| 日韩精品视频高清在线观看| 欧美一区二区亚洲天堂| 欧美日韩亚洲中文二区| 欧美一区二区三区精美| 久久亚洲中文字幕精品熟女| 欧美国产精品中文字幕| 91国产网址在线观看| 中文字幕日韩欧美一区二区| 日韩av专区在线免费观看 | 伊人激情久久综合中文字幕| 亚洲第一国产综合自拍| 少妇按摩高潮呻吟av| 日本丰满熟女毛茸茸的黑逼| 国产日本福利在线综合网| 岛国av在线免费观看| 深夜十八禁在线免费观看| 欧美性生活真实的视频| 91日韩人妻一区二区三区| 日韩三级视频一区二区| 日韩欧美国产午夜精品| 国产精品一区巨乳人妻| 麻豆国产97在线精品一区| 97资源在线公开视频| 中文字幕国产精品综合一区| 少妇一夜一次一区二区| 曰韩av毛片在线观看| 精品人妻一区二区三区乱码| 九色91成人在线视频|