您的位置:首页 > 编程语言 > C语言/C++

数据类型,运算符和表达式02 - 零基础入门学习C语言03

2010-09-19 17:47 1071 查看

第二章:数据类型,运算符和表达式02

让编程改变世界

Change the world by program

整型变量

整型变量的分类(注意:这里占多少个字节跟系统和编译器规定有关!可以在编译器上自己试试查看)

1) 基本型:类型说明符为int,在内存中占4个字节。
2) 短整量:类型说明符为short int或short。所占字节和取值范围均与基本型相同。
3) 长整型:类型说明符为long int或long,在内存中占4个字节。
4) 无符号型:类型说明符为unsigned。

整型变量的定义

变量定义的一般形式为:类型说明符 变量名标识符,变量名标识符,...;

例如:
int a,b,c; (a,b,c为整型变量)
long x,y; (x,y为长整型变量)
unsigned p,q; (p,q为无符号整型变量)

在书写变量定义时,应注意以下几点:

允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用“,”号间隔。类型说明符与变量名之间至少用一个空格间隔。
最后一个变量名之后必须以“;”号结尾。
变量定义必须放在变量使用之前。一般放在函数体的开头部分。

整型变量的定义与使用:

[codesyntax lang="c"]
#include <stdio.h>

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=%dn”,c,d);
}

[/codesyntax]

整型数据的溢出

[codesyntax lang="c"]
#include <stdio.h>

void main()
{
int a,b;

a=32767;
b=a+1;
printf("%d,%dn",a,b);
}

[/codesyntax]

32767: 0111111111111111
-32768: 1000000000000000

[codesyntax lang="c"]
#include <stdio.h>

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=%dn",c,d);
}

[/codesyntax]

实型数据

实型常量的表示方法

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

1) 十进制数形式:由数码0~ 9和小数点组成。
例如:
0.0、25.0、5.789、0.13、5.0、300.、-267.8230
等均为合法的实数。注意,必须有小数点。

2) 指数形式:由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。
其一般形式为:a E n(a为十进制数,n为十进制整数)

如:
2.1E5 (等于2.1*105)
3.7E-2 (等于3.7*10-2)
0.5E7 (等于0.5*107)
-2.8E-2 (等于-2.8*10-2)

以下不是合法的实数:
345 (无小数点)
E7 (阶码标志E之前无数字)
-5 (无阶码标志)
53.-E3 (负号位置不对)
2.7E (无阶码)

标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。

实型变量

实型数据在内存中的存放形式

实型数据一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:

[caption id="attachment_56" align="aligncenter" width="150"]

C语言变量范围[/caption]

小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。
指数部分占的位数愈多,则能表示的数值范围愈大。

实型变量的分类

实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。

实型数据的舍入误差

由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。如下例。

[codesyntax lang="c"]
#include <stdio.h>

void main()
{
float a,b;

a=123456.789e5;
b=a+20
printf("%fn",a);
printf("%fn",b);
}

[/codesyntax]

补充:
(1)1.0 / 3 * 3等于多少?
(2)3 / 2呢?
(3)1 / 3 * 3呢?

编程(1):
[codesyntax lang="c"]
#include <stdio.h>

void main()
{
printf("%fn", 1.0 / 3 * 3);
}

[/codesyntax]

编程(2):…… ……
编程(3):…… ……

[buy] 获得所有教学视频、课件、源代码等资源打包 [/buy]
[Downlink href='http://kuai.xunlei.com/d/LJRDIKZZRGEC']视频下载[/Downlink]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: