本文是《三天学会C语言编程》的第二篇文章,承接《三天学会C语言编程|上篇》。本文重点介绍C语言的数据类型、表达式、变量和函数等内容。
数据类型
C语言中有多种数据类型,这些数据的类型与我们日常生活中的数据的类型有些类似。比如整型数和浮点型数(小数),还有一些我们平时接触不到的数据类型,如字符串类型(上文中的helloworld!就是一个字符串类型的数据)。如下表是C语言支持的数据类型(部分),这里先不用过多理解,只需要知道有这些类型就行,后面会详细介绍。通过这个表可以看出不同类型的数据占用的内存空间大小是不同的。
图1C语言数据类型列表变量
变量其实是内存的一个区域,用于存储具体的数据,需要说明的是变量是有名称的。变量的名称就好像邮箱的编号一样,这样我们在编程的时候就可以通过这个名字方便的访问(读或者写)变量。
在C语言中变量的名称可以是英文字符、下划线和数字,但只能以英文字符和下划线开头,不能以数字开头。另外,C语言中变量名称是区分大小写的,也就是var_name和var_Name是两个不同的变量。
我们知道在C语言中数据是有不同的类型的,同样变量也有不同的类型。不同类型的变量用于存储不同类型的数据,而且不同类型变量占用的空间大小是不同的。那么如何定义一个变量呢?很简单,其基本格式就是类型+变量名称,如下定义了一个整形的变量:
intvar_name;
其它类型的变量与此类似,只是变量的类型不同。至于名称则遵循上文所描述的规范。
表达式
我们知道程序最主要的功能就是进行计算的,因此在程序中会有一些表达式进行计算。表达的形式与日常数学中的表达式基本一致,运算的优先级也类似。如下是一个简单的表达式:
3+5*6
这个表达式进行简单的数据计算,但该表达式在实际编程时并不没有太大意义,因为计算出的值将被直接丢弃。通常我们需要将表达式计算的值放到一个变量这,这样我们后面才能使用该表达式计算的结果。下面是一个具体的示例:
#includestdio.hintmain(void){inta;//声明整型变量 longb;//声明长整型变量 shortc;//声明短整型变量 chard;//声明字符类型的变量 floate=1.2;//声明浮点型(小数)变量,在声明的时候可以直接初始化 intf=0; unsiginedint=3;//声明无符号整型变量,无符号整形只能是非负整数 b=10;//给变量赋值,赋值就是改变变量的内容,让其等于某个值 c=11;//注意赋值的方向,变量在等号左边(又称“左值”),数据在等号右面 a=a+10;//进行基本的加法运算 c=a+b;/*可以进行不同类型的变量之间的运算,但可能会丢失数据。因为每种类型变量存储的数值大小是有限的,超过就会溢出。本例中变量c是短整型,范围是-32,到32,。而变量b是长整形,范围是从-2,,,到2,,,。因此,如果计算结果超过了c的范围,将会出现溢出,因此在计算是需要注意。*/ e=a+b*c;//这里的*是星号,也就是键盘8上面的字符,代表乘法 a=(a+e)*c;//可以使用括弧提升运算的优先级,本例中 a=a/c;//除法运算 a=a%c;//取模运算 a--;//自减运算,也就是自己减1 a++;//自加运算 /*除了进行基本的算术运算外,还可以进行位运算。所谓位运算就是逐位运算。*/ a=ab;//按位“与”运算 a=a
b;//或 a=a^b;//异或 a=~a;//非 /*关系运算,也就是判断两个或者多个变量的关系。*/ a==b;//判断两者是否相等,相等返回真,否则返回假 a=b; ab; a=b; a!=b;//判断两者是否相等,相等返回假,否则返回真 ab;//注意是2个,两者都为真是结果为真。可以多余2个进行运算 a
b;}
函数
我们在最一开始的时候已经使用了函数,但还没有对函数进行任何介绍。下面本文将介绍一下什么是函数,为什么要有函数以及函数怎么使用。
函数是对实现某个功能的代码的封装。有了函数之后,具体的功能我们调用该函数就可以完成,而不同将代码黏贴过来,增加了便利性。
#includestdio.h/*下面是函数的定义*/intadd(inta,intb)/*这一行成为函数头,其中int是函数的返回值类型,add是函数名称,inta和intb是函数的参数(形参)。这里返回值和参数可以是任何类型。*/{/*函数头后面要紧跟着{,可以与函数头在同一行,或者另起一行,这个代表函数体的开始*/intc=0; c=a+b;//这里是函数的具体实现,根其它地方没有任何差异 returnc;//函数的返回值,类型要与在函数头中定义的一直,否则有截断的风险 }/*函数体的结束*/ intmain(void) { inta=0; a=add(1,2);/*函数的调用,这里相当于使用add函数的功能,进行加法运算。*/ printf(result:%d\n,a);}
函数可以与入口函数在相同的文件中,也可以在一个单独的文件中。函数的定义通常在.c文件中,而在头文件(.h文件)中添加声明。这样我们只需要包含头文件就可以使用该函数了。
好了今天先到这,到这里基本上可以写简单的C语言程序了,并封装成功能函数。明天写最后一篇主要介绍流程控制、复杂的数据类型和系统库等内容。