複製鏈接
請複製以下鏈接發送給好友

char

(計算機語言關鍵字)

鎖定
char用於C或C++中定義字符型變量,只佔一個字節,取值範圍為 -128 ~ +127(-2^7~2^7-1)。C語言中如int、long、short等不指定signed或unsigned時都默認為signed,但char在標準中不指定為signed或unsigned,編譯器可以編譯為帶符號的,也可以編譯為不帶符號的。 [1] 
中文名
字符
外文名
char
類    型
C/C++整型數據之一
定    義
可容納單個字符的數據類型
範    圍
-128 ~ +127

charchar數據類型

(1)定義:char型數據是計算機編程語言中只可容納單個字符的一種基本數據類型。
(2)取值範圍:char : -2^7 ~ 2^7-1 ;
signed char: -2^7 ~ 2^7-1
unsigned char : 0 ~ 2^8-1
而且關於char還有一個特殊的語言就是char *,它在C/C++中有專門的語義,既不同於signed char *,也不同於unsigned char *,專門用於指以'\0'為結束的字符串。 [2] 
在C++中,下列程序是可以通過編譯的:
char *p="abcd";
但如果用
signed char *p="abcd";
unsigned char *p="abcd";
都是不能通過編譯的。 [3] 
判斷編譯器的默認char符號方法如下:
#include <stdio.h>
int main()
{
  char c=-1;
  if(c<200){
  printf("signed\n");
  }
  else{
  printf("unsigned\n");
  }
  return 0;
}
/*char 還在pascal語言中應用。在Pascal語言中,字符常量是由單個字符組成,所有字符采用ASCII編碼也稱ASCII碼*/

charMYSQL中的char數據類型

在MYSQL中,字段類型char是指:使用指定長度的固定長度表示的字符串;比如char(8),則數據庫會使用固定的8個字節來存儲數據,不足8位的字符串在其後補空字符。 [4] 

charExcel中形式char函數

在excel中char函數用於返回對應發於數字代碼的字符。其用法:=char(number)
其中,參數number為轉換的字符代碼,介於0~255之間,char佔一個字節,也就是8個二進制位,但它表示的是有符號的類型,所以表示的範圍是-128~127;uchar表示無符號的類型,所以表示的範圍是0~255。

charint型和char型變量相互賦值

整型和字符型是互通的,他們是在內存中存儲的本質是相同的,只是存儲的範圍不同而已,整型可以是2字節,4字節,8字節,而字符型只佔1字節。 [1] 
例如:
#include<stdio.h>int main(void){    int i = 128;    char ch = i;    printf("%d\n",ch);    return 0;}

char類型佔1字節,就是8位,所能存儲的正整數是 0111 1111,即127。如果將 int 型的整數i= 128 賦予ch,會產生溢出。因128是 int 型,佔 4 字節,二進制代碼為 0000 0000 0000 0000 0000 0000 1000 0000.。若將它賦給一個只有8位的char 類型變量,只能將低8位的1000 0000 放進去,其他的都會被刪掉。整數在計算機中都是以補碼的形式存儲的,此時1000 0000 在計算機的眼裏,是一個補碼,最左邊是 1 表示負數,補碼1000 0000 所對應的十進制是 -128,所以最後輸出的就是 -128。因此溢出會使得最大正整數變成最小負整數。
參考資料
  • 1.    譚浩強.C程序設計(第4版):清華大學出版社 , 2010.6
  • 2.    索明何,邢海霞,方偉駿 .C語言程序設計 : 機械工業出版社,2016.2
  • 3.    林小茶,陳昕 .C程序設計教程(第3版):清華大學出版社,2018.6
  • 4.    崔洋 賀亞茹.MySQL數據庫應用從入門到精通:中國鐵道出版社 ,2016.1