c语言-数据类型(1)

数据类型:1.基本数据类型:不可以再分解,自我说明;

                   2.构造数据类型:由基本数据类型或构造类型通过构造方法组成;

                   3.指针类型:用来表示某个变量在存储器的地址;

                   4.空类型:调用后不需要向调用者返回函数值的函数,可以定义为“空类                                                     型”,类型标识符为void。

 

常量和变量:

区别1:在程序执行过程中,其值不发生改变的量称为常量;其值发生改变的量称为变量。

区别2:常量可以不经过说明直接引用;变量必须先定义后使用。

符号常量:

用标识符(大写)代表一个常量,使用之前先定义。

例:#define  PRICE   30

注释:#define是一条预处理命令,称为宏定义命令。以后的程序中所有出现标识符PRICE的地方均为30。

例:

#incIude<stdio.h>

#define PRICE 30

void main()

     int num,total;

     num=10;

    total=num*PRICE;

    printf("total=%d",total);

变量:

变量定义必须放在变量使用之前,一般放在函数体开头。

例:int  a=3;

注释:a为变量的名称,3为变量的值,0×0010ff为变量的地址,3在内存中是以二进制存放的。

基本数据类型之整型

整型常量:整型常量就是整常数。

1.十进制整常数:无前缀,数码0-9;

例:237,-857,65535,1787

2.八进制整常数:前缀为0,数码0-7;

例:015,0101,0177777

3.十六进制整常数:前缀为0x或0X,数码0~9,A~F或a~f;

例:0X2A,0XA0,0XFFFF

整型常数后缀:

在16位字长的机器上,基本整型的长度也为16位,因此表示数的范围也是有限的。

十进制:无符号整型常数的范围为0~65535;

               有符号整型常数的范围为-32768~+32767;

八进制:无符号数的范围为0~0177777;

十六进制:无符号数的范围为0X0~0XFFFF或0x0~0xFFFF;

如果超过上述范围,就必须用长整型数来表示,长整型用后缀’L’或’l’来表示。

整型变量:

1.基本型,类型说明符为int;

2.短整型,类型说明符为short或short int;

3.长整型,类型说明符为long或long int;

4.无符号型,类型说明符为unsigned。

注释:每种类型占多少个字节和编译器规定有关。

变量定义:类型说明符  变量名标识符,变量名标识符;

例:int a,b,c;

       long x,y;

       unsigned p,q;

例1:

#include

void main()

int a,b,c,d;

unsigned u;

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf("a+u=%d,b+u=%d\n",c,d);

}

例2:

#include

void main()

{

short int a,b;

a=32767;

b=a+1;

printf("%d,%d\n",a,b);

}

分析:short int占两个字节,共16位,十进制无符号整型常数的范围0~65535有符号数为-32768~+32767而32767+1=32768会溢出,结果会有负号。

例3:

#include

void main()

{

long x,y;

int a,b,c,d;

x=5;

y=6;

a=7;

b=8;

c=x+a;

d=y+b;

printf("c=x+a=%d,d=y+b=%d\n",c,d);

}

分析:结果为整型,不同类型的量可以参与运算并相互赋值。

实型数据

实型常量:

实型也称为浮点型,实型常量也称为实数或者浮点数,在C语言中,实数只采用十进制,他有两种形式:十进制小数形式,指数形式。

1.十进制数形式:由数码0-9和小数点组成(必须要有小数点)

例如:0.0   25.0    5.789

2.指数形式:由十进制数,阶码标志“e”或“E”以及阶码组成,阶码为十进制整数,可以带符号;

例如:2.1E5    3.7E-2   -2.8E-2

注:标准C允许浮点数使用后缀。后缀为“f”或“F”,即表示该数为浮点数。

例:356f与356.等价

实型变量:

1.单精度(float型)

2.双精度(double型)

3.长双精度(long double型)

例:实型数据的舍入误差

#include

void main()

{

float a,b;

a=123456.789e5;

b=a+20;

printf("%f\n",a);

printf("%f\n",b);

}

分析:由于实型变量是由有限的存储单元组成的,因此提供的有效数字总是有限的。

例2:

情形一:

#include

void main()

{

printf("%f",1.0/3*3);

}

情形二:

#include

void main()

{

printf("%d",3/2);

}

情形三:

#include

void main()

{

printf("%d",1/3*3);

}

字符型数据

字符常量:

字符常量是用单引号括起来的1个字符。

例:'a'   'b'   '='  '+'

在C语言中,字符常量有以下特点:

1.字符常量只能用单引号括起来,不能用双引号;

2.字符常量只能是单个字符,不能是字符串;

3.字符可以是字符集中任意字符,但数字被定义为字符型之后就不能参与数值运算。

字符变量:

用来存储字节常量,即单个字符。

例:char a,b;

转义字符:

转义字符是一种特殊的字符常量,以反斜杆“\”开头,后跟一个或几个字符,具有特定的含义。如“\n”就是一个转义字符,表示的是“回车换行”。

例:

#include

void main()

int a,b,c;

a=5;b=6;c=7;

printf("ab  c\tde\rf\n");

printf("hijk\tL\Bm\n");

}

字符数据在内存中的存储形式及使用方法:每个字符常量被分配一个字节的内存空间,字符值是以ASCII码的形式存放在变量的内存单元中。

例:x的ASCII码是120,y的ASCII码是121,

a='x';b='y';

实际上是在a,b两个单元内存放的120,121的二进制代码。

例1:

#include

void main()

{

char a,b;

a=120;

b=121;

printf("%c,%c\n",a,b);

printf(%d,%d\n",a,b);

分析:a,b值得输出形式取决于printf函数格式中的格式符,当格式符为“c”时,对应输出的变量值为字符,当格式符为“d”时,对应输出的变量的值为整数。

例2:

#include

void main()

{

char a,b;

a='a';

b='b';

a=a-32;

b=b-32;

printf("%c,%c\n%d,%d\n,a,b,a,b);

}

字符串常量:

字符串常量是由一对双引号括起来的字符序列,例如:“CHINA”,“C program”都是合法的字符串常量。

字符串常量与字符常量的区别:

1.字符常量由单括号括起来,字符串常量由双括号括起来;

2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符;

3.可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。

例如:可以char a='a', 不可以 char a="a"。

4字符常量占一个字节的内存空间,字符串常量占的内存字节数等于字符串中的字节数加一。增加的一个字节存放字符“\0”这是字符串结束的标志。

 

              

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(c语言-数据类型(1))