数据和C

本文为C Primer Plus(第六版)第三章学习笔记

目录:

  • 变量与常量数据
  • 数据:数据类型关键字     
  • C语言基本数据类型(int类型)

1.变量与常量数据

        有些数据类型在程序使用之前已经设定好了,在整个程序的运行过程中没有变化,这些称为常量。其他数据类型在运行期间可能会被改变或被赋值,这些称为变量

2.数据:数据类型关键字

C语言的数据类型关键字
最初K&R给出的关键字 C90标准添加的关键字 C99标准添加的关键字
int signed _Bool
long void _Complex
short _Imaginary
unsigned
char
float
double

        在C语言中,用int关键字来表示基本整数类型。后3个关键字(long、short和unsigned)和C90新增的signed用于提供基本整数类型的变式,例如unsigned short int何long long  int。char关键字用于指定字母和其他字符(如,#、$、%和*)。另外,char类型也可以表示较小的整数。float、double和long double表示带小数点的数。_Bool类型表示布尔值(true或false),_Complex和_Imaginary分别表示复数和虚数。

        通过这些关键字的创建,按计算机的存储方式可以分为两大基本类型:整数类型和浮点数类型。

        位、字节和字是描述计算机数据单元或存储单元的术语。这里主要指存储单元。

        最小的存储单元是位(bit),可以储存0或 1(或者说,位用于设置“开”或“关”)。虽然1位储存的信息有限,但是计算机中位的数量十分庞大。位是计算机内存的基本构建块。
        字节(byte)是常用的计算机存储单位。对于几乎所有的机器,1 字节均为 8位。这是字节的标准定义,至少在衡量存储单位时是这样。既然1 位可以表示0或1,那么8位字节就有 256(2的8次方)种可能的0、1 的组合。通过二进制编码(仅用0和1便可表示数字),便可表示0~255的整数或一组字符。
        字(word)是设计计算机时给定的自然存储单位。对于8位的微型计算机(如,最初的苹果机),1 个字长只有 8位。从那以后,个人计算机字长增至16位、32位,直到目前的64 位。计算机的字长越大,其数据转移越快,允许的内存访问也更多。

1.整数

        计算机以二进制数字存储整数,例如,整数7以二进制写是111。因此,要在8位字节中存储该数字,需要把前5位设置为0,后三位1。

数据和C_第1张图片

2.浮点数

        计算机把浮点数分成小数部分和整数部分来表示,而且分开存储。例如7.00和7存储方式不同。

  • 整数没有小数部分,浮点数有小数部分。
  • 浮点数表示的范围比整数大。
  • 对于一些算术运算,浮点数损失的精度更多。
  • 因为在任何区间都存在无穷多个实数,所以计算机的浮点数不能表示区间内所有值。浮点数通常只是实际值的近似值。例如,7.0可能被存储为6.99999。

数据和C_第2张图片

3.C语言基本数据类型             

1.int类型

        int类型是有符号整数,可以为正整数、负整数或零。

(1)声明int变量

        可以单独声明每个变量,也可以在int后列出多个变量名。

例如:int erns;

           int hogs,cows,goats;

        变量如何获得值,有两种方法:

第一种是赋值:cows=112;

第二种是,通过函数(如:scanf())获得值。

第三种:初始化变量。

        初始化变量就是为变量赋一个初始值。在C语言中,初始化可以直接在声明中完成。只需在变量名后面加上赋值运算符(=)和待赋给变量的值即可。

        int hogs=21;

        int cows=32,goats=14;

        int dogs,cats=94; //有效,但是这种方法很糟糕。

        以上示例的最后一行,只初始化了cats,并未初始化dogs。这种方法很容易让人误认为dogs也被初始化为94,最好不要这种方式赋值。

        简而言之,声明为变脸创建和标记存储空间,并为其指定初始值。

(2)打印int 值

        可以使用printf()函数打印int类型的值。%d指明了在一行中打印整数的位置。%d称为转换说明,它指定了printf()应使用什么格式来显示一个值。格式化字符串中的每个%d都与待打印变量列表中相应的int 值匹配。这个值可以是int 类型的变量、int类型的常量或其他任何值为int类型的表达式。作为程序员,要确保转换说明的数量与待打印值的数量相同,编译器不会捕获这类型的错误。

#include
int main(void)
{
    int ten=10;
	int two=2;

    printf("Doing it right:");
    printf("%d minus %d is %d\n",ten,2,ten-two);
	printf("Doing it wrong:");
    printf("%d minus %d is %d\n",ten,2,ten-two);	//遗漏两个参数

    return 0;
}

运行结果:              

数据和C_第3张图片

        在第一行输出中,第1个%d对于int类型变量的ten;第2个%d对应int类型常量2;第3个%d对应int类型表达式ten-two的值。

         在第二行输出中,第1个%d对于int类型变量的ten的值,但是由于没有给后两个%d提供任何值,所以打出来是任意值。

你可能感兴趣的:(c语言,开发语言)