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)位段不能出现数组的形式。