A. c語言的數據類型分為幾種
short、int、long、char、float、double
這六個關鍵字代表C 語言里的六種基本數據類型。
在不同的系統上,這些類型占據的位元組長度是不同的:
在32
位的系統上
short
占據的內存大小是2 個byte;
int占據的內存大小是4
個byte;
long占據的內存大小是4
個byte;
float占據的內存大小是4
個byte;
double占據的內存大小是8
個byte;
char占據的內存大小是1
個byte。
具體可以用sizeof測試一下即可。
(1)c語言的位域欄位的類型擴展閱讀:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
B. c語言四種基本數據類型
C語言四種基本數據類型:整型,浮點型,指針,聚合類型(數組和結構體)。浮點型:浮點型包括單精度型和雙精度型。
(1)單精度型:一般佔4個位元組(32位),float a=4.5。
(2)雙精度型:一般佔8個位元組(64位),double a=4.5。
(2)c語言的位域欄位的類型擴展閱讀
整型家族有九種數據類型:字元型(char), 有符號字元型(signed char),無符號字元型 (unsigned char),短整型( short) ,無符號短整型( unsigned shortv) ,整型( intv) ,無符號整型(unsigned int),長整型( long),無符長整型(unsigned long)。
指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值。
聚合指對有關的`數據進行內容挑選、分析、歸類,最後分析得到人們想要的結果,主要是指任何能夠從數組產生標量值的數據轉換過程。
C. 關於c語言的「位域」。
聲明是我拷貝過來的,不過說的很好。
位域
有些信息在存儲時,並不需要佔用一個完整的位元組, 而只需占幾個或一個二進制位。例如在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省存儲空間,並使處理簡便,C語言又提供了一種數據結構,稱為「位域」或「位段」。所謂「位域」是把一個位元組中的二進位劃分為幾 個不同的區域, 並說明每個區域的位數。每個域有一個域名,允許在程序中按域名進行操作。 這樣就可以把幾個不同的對象用一個位元組的二進制位域來表示。
一、位域的定義和位域變數的說明位域定義與結構定義相仿,其形式為:
struct 位域結構名
{ 位域列表 };
其中位域列表的形式為: 類型說明符 位域名:位域長度
例如:
struct bs
{
int a:8;
int b:2;
int c:6;
};
位域變數的說明與結構變數說明的方式相同。 可採用先定義後說明,同時定義說明或者直接說明這三種方式。例如:
struct bs
{
int a:8;
int b:2;
int c:6;
}data;
說明data為bs變數,共占兩個位元組。其中位域a佔8位,位域b佔2位,位域c佔6位。對於位域的定義尚有以下幾點說明:
1. 一個位域必須存儲在同一個位元組中,不能跨兩個位元組。如一個位元組所剩空間不夠存放另一位域時,應從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如:
struct bs
{
unsigned a:4
unsigned :0 /*空域*/
unsigned b:4 /*從下一單元開始存放*/
unsigned c:4
}
在這個位域定義中,a占第一位元組的4位,後4位填0表示不使用,b從第二位元組開始,佔用4位,c佔用4位。
2. 由於位域不允許跨兩個位元組,因此位域的長度不能大於一個位元組的長度,也就是說不能超過8位二進位。
3. 位域可以無位域名,這時它只用來作填充或調整位置。無名的位域是不能使用的。例如:
struct k
{
int a:1
int :2 /*該2位不能使用*/
int b:3
int c:2
};
從以上分析可以看出,位域在本質上就是一種結構類型, 不過其成員是按二進位分配的。
二、位域的使用
位域的使用和結構成員的使用相同,其一般形式為: 位域變數名·位域名 位域允許用各種格式輸出。
main(){
struct bs
{
unsigned a:1;
unsigned b:3;
unsigned c:4;
} bit,*pbit;
bit.a=1;
bit.b=7;
bit.c=15;
printf("%d,%d,%d\n",bit.a,bit.b,bit.c);
pbit=&bit;
pbit->a=0;
pbit->b&=3;
pbit->c|=1;
printf("%d,%d,%d\n",pbit->a,pbit->b,pbit->c);
}
上常式序中定義了位域結構bs,三個位域為a,b,c。說明了bs類型的變數bit和指向bs類型的指針變數pbit。這表示位域也是可以使用指針的。
程序的9、10、11三行分別給三個位域賦值。( 應注意賦值不能超過該位域的允許范圍)程序第12行以整型量格式輸出三個域的內容。第13行把位域變數bit的地址送給指針變數pbit。第14行用指針 方式給位域a重新賦值,賦為0。第15行使用了復合的位運算符"&=", 該行相當於: pbit->b=pbit->b&3位域b中原有值為7,與3作按位與運算的結果為3(111&011=011,十進制值為 3)。同樣,程序第16行中使用了復合位運算"|=", 相當於: pbit->c=pbit->c|1其結果為15。程序第17行用指針方式輸出了這三個域的值。
為了節省空間,可以把幾個數據壓縮到少數的幾個類型空間上,比如需要表示二個3位二進制的數,一個2位二進制的數,則可以用一個8位的字元表示之。
struct
{
char a : 3;
char b : 3;
char c : 2;
} ;
這個結構體所佔空間為一個位元組,8位。節省了空間。
D. C語言的三種基本數據類型是什麼
C語言的三種基本數據類型為整型,實型,字元型。
1 整型,包括short, int, long等,用以表示一個整數,默認為有符號型,配合unsigned關鍵字,可以表示為無符號型。
2 實型,即浮點型,包括float, double等,用來表示實數,相對於整型,該類型可以表示帶有小數部分的數值。需要注意的是,實型在計算機語言中為近似值表示,並非准確值,在多次計算後可能會出現真值偏差。
3 字元型,即char型,用來表示各種字元,與ascii碼表一一對應。除可以用來表示各類字元外,char型的其它規則與整型相同,可以認為char是一種特殊的整型。
E. 關於c語言的「位域」。
以a為例,a定義為該struct的0~2 bits,其取值就是b000~b111,即(0~7)
b則是,3~6 bits,其取值就是b0000~b1111,即(0~15)
詳見http://ke..com/view/1256879.htm
F. c語言的數據類型包括哪些
C語言的數據類型包括:基本類型、構造類型、指針類型、空類型。
其中構造類型中包括共用體、數組、結構體三種類型。基本類型中還包括整型、浮點型、字元型和枚舉型四種類型。
1、基本類型,也就是C語言中的基礎類型,其中包括整數類型、字元型、浮點型、枚舉類型。
2、構造類型,就是使用基本類型的數據,或者使用已經構造好的數據類型,進行添加、設計構造出新的數據類型,使其設計的新構造類型滿足待解決問題所需要的數據類型。它並不像基本類型那樣簡單,而是由多種類型組合而成的新類型,其中每一組成部分稱為構造類型的成員。
構造類型也包括三種形式:數組類型、結構體類型和共用體類型。
3、指針類型,C語言的精華是指針,指針類型不同於其他類型的特殊性在於:指針的值表示的是某個內存地址。
4、空類型,關鍵字是void,其主要作用在於:對函數返回的限定;對函數參數的限定。也就是說,一般一個函數都具有一個返回值,將其值返回調用者,這個返回值是具有特定的類型,但是當函數不必返回一個值時,就可以使用空類型設定返回值的類型。
c語言
C語言是一門面向過程、抽象化的通用程序設計語言,主要用於底層開發。以簡易的方式編譯,並處理低級存儲器。C語言支持跨平台操作,一個標準的C語言程序可以在許多計算機平台上進行編譯。
G. C語言的基本數據類型和舉例!
C語言有五種基本數據類型:字元、整型、單精度實型、雙精度實型和空類型。盡管這幾種類型數據的長度和范圍隨處理器的類型和C語言編譯程序的實現而異,但以bit為例,整數與CPU字長相等,一個字元通常為一個位元組,浮點值的確切格式則根據實現而定
C語言還提供了幾種聚合類型(aggregate
types),包括數組、指針、結構、共用體(聯合)、位域和枚舉
除v
o
i
d類型外,基本類型的前面可以有各種修飾符。修飾符用來改變基本類型的意義,以便更准確地適應各種情況的需求。修飾符如下:
H. c語言簡單數據類型有哪些
C語言的基本數據類型為:整型、字元型、實數型。
這些類型按其在計算機中的存儲方式可被分為兩個系列,即整數(integer)類型和浮點數(floating-point)類型。
這三種類型之下分別是:short、int、long、char、float、double 這六個關鍵字再加上兩個符號說明符signed和unsigned就基本表示了C語言的最常用的數據類型。
下面列出了在32位操作系統下 常見編譯器下的數據類型大小及表示的數據范圍:
I. C語言什麼是位段,位段的定義求答案
位段(bit-field)是以位為單位來定義結構體(或聯合體)中的成員變數所佔的空間。含有位段的結構體(聯合體)稱為位段結構。採用位段結構既能夠節省空間,又方便於操作。
位段的定義格式為:
type [var]:digits
其中type只能為int,unsigned int,signed int三種類型(int型能不能表示負數視編譯器而定)。位段名稱var是可選參數,即可以省略。digits表示該位段所佔的二進制位數。
那麼定義一個位段結構可以像下面這段代碼去定義:
structnode
{
unsignedinta:4;//位段a,佔4位
unsignedint:0;//無名位段,佔0位
unsignedintb:4;//位段b,佔4位
intc:32;//位段c,佔32位
int:6;//無名位段,佔6位
};
使用位段需注意一下幾點:
1)位段的類型只能是int,unsigned int,signed int三種類型,不能是char型或者浮點型;
2)位段占的二進制位數不能超過該基本類型所能表示的最大位數,比如在VC中int是佔4個位元組,那麼最多隻能是32位;
3)無名位段不能被訪問,但是會占據空間;
4)不能對位段進行取地址操作;
5)若位段占的二進制位數為0,則這個位段必須是無名位段,下一個位段從下一個位段存儲單元(這里的位段存儲單元經測試在VC環境下是4個位元組)開始存放;
6)若位段出現在表達式中,則會自動進行整型升級,自動轉換為int型或者unsigned int。
7)對位段賦值時,最好不要超過位段所能表示的最大范圍,否則可能會造成意想不到的結果。
8)位段不能出現數組的形式。