C语言程序设计谭浩强版 一

本章的一些概况这里就不说了,直接进入细节的学习!


3.1、C的数据类型



数据类型分为:基本类型、构造类型、指针类型、空类型

基本类型又分为:整型、字符型、实型(浮点型:又分为单精度型、双精度型)、

                            枚举类型

构造类型又分为:数组类型、结构体类型、共用体类型






3.2、常量和符号常量


在程序运行过程中,其值不能被改变的量成为常量。

常量区分为不同类型,如12、0、-3为整型常量,4.6、-1.23为实型常量,‘a','b'为字符

常量

例3.1 符号常量的使用

#include<stdio.h>
/* 符号常量的使用 */
#define PRICE 30
int main(void)
{
    int num,total;
    num = 10;
    total = num*PRICE;
    printf("total = %d\n",total);
}

上面的例子介绍了符号常量的使用,使用define来定义的,再后面的学习中,我们会详细的介绍它的使用方法。

习惯上,符号常量名用大写,变量名用小写,以示区别。

使用符号常量的好处是:

1、含义清楚,我们可以用见名知意的方式来定义符号常量,以免在程序中出现很多常

     数,搞不清楚各个常数究竟代表什么意思。

2、在需要改变一个常量时能做到一改全改。如,上面例子中我可以只修改

     #define PRICE 35,我就可以修改整个程序中所有出现PRICE的地方的值


3.2.1 变量


其值可以改变的量称为变量。

标识符,简单的地说就是一个名字,C语言规定,标识符只由字母,数字和下划线三种字符组成,且第一个字符必须是字母或者下划线

在C语言中,要求对所有用到的变量做到强制定义,也就是先定义,后使用。

1、凡未被事先定义的,不作为变量名,这就能保证程序中变量名使用的正确

2、每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。

3、指定每个变量属于一个类型,这就便于在编译时,据此检查该变量所进行的

      运算是否合法

例如:a b都为整型变量,可以进行求余运算,若是a b中有实型变量,则不允许进行求余运算。



3.3、整型数据


3.3.1  整型常量的表示方法


十进制:如 123、 -456等

八进制:以数字0开头,如0123、-011

十六进制:以0x开头,如0x123、-0x12


3.3.2  整型变量


1、整型数据在内存中的存放形式


数据在内存中是以二进制补码的形式存放的,一个正数的补码和其源码的形式相同,负数的补码是该数的绝对值的二进制形式,按位取反再加1.整型变量在内存中占的字节数取决于编译器,本书以Turbo C为例,一个整型变量占2个字节。


我们列举如下的例子,来看一下整型变量在内存的实际存放情况,定义两个整型变量10和-10


int i,j;

i = 10;

j = -10;


整数10 在内存中的存储情况如下图

-10的存储情况如下




数由此可知,在整数的16位当中,最左面的一位是表示符号的,该位为0,表示正,为1表示负。




2、整型变量的分类


下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。



3、整型变量的定义


对变量的定义,一般是放在一个函数的开头部分的声明部分。我们举例来说明一下整型变量的定义和使用

#include<stdio.h>
int main(void)
{
	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);
}


4、整型变量的溢出


我们知道,一个有符号的整型变量允许的最大值为32767,如果我们再加1会出现什么情况呢?我们用下面的例子来看一下。

#include<stdio.h>
int main(void)
{
	int a,b;
	a = 32767;
	b = a + 1;
	printf("%d %d\n",a,b);
}

在Turbo C中计算b的结果为-32768,表明数据溢出后,会调到整型变量能表示的最小值。

注:实际情况并不是这样的,现在的编译器都很聪明,它会告诉你,你定义的数据超出了整型变量的表示范围,并不会出现溢出的情况





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值