计算机的每一个数据都有一个类型,每一种编程语言都有一套基本数据类型。基本数据类型是构成语言的数据类型,它们常用来作为其他数据类型的基本元素。C语言中存在3种基本数据类型,整型(int,它又分为有符号类型和无符号类型(unsigned),无符号类型保存大于等于0的数,因此,存储的范围是有符号类型的两倍。)、浮点型(float、double)、字符型(char)。
变化的数据存储在变量中,在程序中,当我们声明了一个变量时,实际上就是在内存储器中预留了一个位置,同时给这个位置提供了名称和类型。编译器会根据分配的名称和类型检查所有的访问操作。大多数编辑器通常只能识别前32个字符。
C是大小写敏感的语言。在给变量取名称时,尽量不要以下划线开头,因为编译器和相关的类库经常包含以下划线开头的变量。
我们应该将变量声明放在任何可执行语句之前,而且必须牢记:无论何时声明一个变量,若没有对它进行初始化,则该变量可能拥有任意值,因此我们必须在使用一个变量前,对它进行初始化工作。
当程序声明变量时,它们会为变量分配合适的存储空间,但究竟分配多大空间呢?ANSI并没有做任何明文上的规定,编译器作者自行决定每个数据类型分配多少个字节的空间。这样增加程序了的可移植性。但也带来了一些麻烦。对我们来说,编译器分配了多少字节,都没有关系。
当程序在一行中声明多个变量时,应以逗号隔开这些变量。
通常,编译器作者按照以下原则执行空间分配:
short(short int)变量的大小是int的一半,或者等于int。
int(通常为占用2个字节)
long(long int)变量的大小是int的两倍,或者等于int。
float类型是C语言中最基本的浮点数,double类型通常存储两倍于float的位数。很多编译器在编译时,将float变量提升为double类型,short和float是最常被提升的数据类型。这种提升并不需要告诉你,也不需要改变源代码,所以,一般不担心是否进行了提升。
在printf函数和scanf函数中使用格式说明符时,%d用于short int、int类型,%ld用于long int变量,%u用于unsigned short、unsigned int,%lu用于unsigned long,%f用于float、double,%lf用于long double。
当试图在变量里存储了一个数据,而该数据对于该变量类型太大时,就会发生上溢。如果存入变量的数小于数据类型能容纳的值时,变量下溢,对于这些行为,C语言标准并没有定义,不同编译器可能采用不同的实现方法,因此不尝试便无法得知结果。因此需要留心所使用的数据类型,要保证使用足够大的类型来存储数据。
在将一个浮点数赋值给整型变量时,浮点数的小数部分一般会被截掉,而结果将根据编译器的不同而不同,编译器版本也有关系。
很多时候,我们需要在运行速度和数据精确之间权衡轻重,通常一个float类型只能准确容纳6或7个有效位,而double则可以翻倍,在使用浮点数存储数据时,会遇到舍入误差和截断。程序的切确操作取决于用编译器。
和其他C风格语言一样,main函数是程序的入口点。
浙公网安备 33010602011771号