栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第二章 数据类型、运算符和表达式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第二章 数据类型、运算符和表达式

2.1引例

例2.1

在屏幕上输出英文短句“Programming is fun "。

                                   
#include                                                         
int main(void)                                                                 
{
    printf(Programming is fun.");                                   
    return 0;
}

运行结果:

Programming is fun.

例2.2设球半径为r、球体积为v、球表面积为f,球体积和表面积的计算式为:

输入半径,分别计算球体积与表面积。

#include
#define PI 3.14159                                             
void main()
{  int r;                                                                
   float v,f;                                                           
   r=2;                                                                 
   v=4.0*PI*r*r*r/3.0;                                           
   f=4.0*PI*r*r;                                                    
   printf("体积为:%f,表面积为:%fn",v,f);        
}

运行结果:

体积为:33.510292,表面积为:50.265442

2.2C语言的数据类型

C语言提供了四种数据类型:基本类型、构造类型、指针类型和空类型。

 

 2.3C语言常量

2.3.1直接常量

直接常量又分为整型常量、实型常量、字符常量和字符串常量。

1.整型常量即整数,包括正整数、负整数和零。C语言中,整型常量可以用十进制、八进制和十六进制表示。

十进制表示:由数字0~9,正、负号组成。

八进制表示:以0(数字0)为前缀,其后由数字0~7组成。

十六进制表示:以0x或0X为前缀,其后由数字0~9和字母A~F(字母大小写均可)组成。

注意:在一个整型常量后面加一个字母u或U,认为是unsigned int x型,如246U。

(2)在一个整型常量后面加一个字母l或L,认为是long int x型,如12L。

2.实型常量

实型常量即实数,又称为浮点数。C语言中,实数只能用十进制形式来表示,实数的表示方法有两种:小数形式和指数形式。

(1)小数形式:由整数部分、小数点和小数部分组成,当整数部分或者小数部分为0时,可以省略不写,但小数点不可省略。

(2)指数形式:由尾数部分、字母E或e和指数部分组成,格式为正负尾数E指数。

注意:

(1)以小数形式表示实数时,必须有小数点,并且小数点的前、后至少一边要有数字。

(2)以指数形式表示实数时,字母E(或e)的前后必须有数字,并且指数部分只能是整数。

3.字符型常量

常见的转义字符如表

 4.字符串常量

字符串常量是由一对双引号“”括起来的零个或多个字符序列,如:“HelloWorld"。

字符串中可以使用空格字符、转义字符和其他字符,也可以使用汉字等文字符号。

如字符串常量”HelloWorld"占用12个字符的内存空间,存储图示如下:

HellonWorld

2.3.2符号常量

在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:

                                                     #define 标识符 常量值

其中#define是一条编译预处理命令,称为宏定义命令,其功能是把该标示符定义为其后的常量值,该标识符称为符号常量。一个#define命令只能定义一个符号常量,若要定义多个符号常量,需使用多个#define命令。

例2.5 利用符号常量计算价格

#include
#define PRICE20
int main()
{    int num,total;                                     
   num=10
   total=num*PRICE;                             
   printf("总价格为:%dn",total);
   return 0;
}

运行结果:

总价格为:200

2.4C语言的变量

2.4.1变量的定义与使用

在C语言中,所有的变量必须先定义后使用。

1.变量的定义

其定义格式:

                                                  类型说明符 变量名表;

其中:

(1)类型说明符必须是C语言中的有效数据类型,如int、float、double、char等,用于指定变量的类型,该类型决定了编译时分配给变量的内存单元的多少。

(2)变量名表可以由一个或多个变量名组成,各变量变量名之间用“,”分隔。变量名必须是合法的C语言标识符,变量名一般使用小写字母。

(3)变量的定义必须放在变量的使用之前,一般在函数体的开头部分进行定义。

2.变量的初始化

C语言允许在定义变量的同时对变量的赋值,这个过程称为变量的初始化。

3.变量的使用

       变量定义之后,就可以在程序中使用。在程序中使用变量,称为变量的引用,如进行数值计算、数据处理等。使用变量时,应该先赋值,后引用。

       在程序中可以通过初始化、赋值表达式或者输入函数scanf()来对变量赋值。

2.4.2整型变量

    一个整型变量用来保存整数。在C语言中,整理又可分为:短整型(short int)、整型(int)、长整型(long int)、无符号型(unsigned int)、无符号短整型(unsigned short int)和无符号长整型(unsigned long int)六种。 

                                                     整型数据关键字、字节数和取值范围

 

 

说明:

(1)各种无符号整数所占的字节数与相应的有符号整数相同。但由于省去了符号位,故不能表示负数。

(2)有符号整数以二进制补码形式储存。最左边第一位表示符号,该位为0,表示正数,该位为1,表示负数。

(3)无符号整数以二进制原码形式储存。

2.4.3实型变量

    C语言中实型变量分单精度(float 型)和双精度(double 型)两类,在Visual C++ 2010环境下,各种实型的关键字及占用内存字节数和取值范围如图表所示:

                                               实型数据关键字、字节数和取值范围

关键字类型占用字节数取值范围
float单精度型43.4E-38~3.4E+38
double双精度型81.7E-308~1.7E+308

2.4.4字符型变量

    字符型变量的值是字符常量,即用单引号引起来的单个字符。字符型变量的类型说明符是char,其类型说明的格式和命名规则与整型变量相同。

2.5 运算符和表达式

    C语言中运算符和表达式数量之多,在其中高级语言中是很少见的。正是丰富的运算符和表达式使C语言的特点之一。

 2.5.1 赋值运算符和赋值表达式

    C语言中赋值运算符就是“=”、“+=”、“-=”、“*=”、“/=”、和“%=”等。用赋值运算符将运算对象连接而成的表达式称为赋值表达式。

1.简单赋值运算符

    最简单的赋值运算符就是“=”,它的作用是将一个数值赋给一个变量。如r=2的作用是执行一次赋值操作(或称赋值运算)。把常量2赋给变量r。也可以将一个表达式的值赋给一个变量。

2.复合赋值运算符

    在简单赋值运算符前面加上算术运算符就构成复合赋值运算符,如表所示

                                                             复合算术赋值运算符

运算符应用举例等价形式
+=a+=xa=a+(x)
-=       a-=xa=a-(x)
*=a*=xa=a*(x)
/=a/=xa=a/(x)
%=a%=xa=a%(x)

3.赋值表达式

   在C语言中,赋值语句属于表达式语句。赋值表达式是由赋值运算符将一个变量和一个表达式连接起来的式子所组成。它的一般形式为:

                                                             变量=表达式

    由于赋值表达式的作用是将一个表达式的值赋给一个变量,因此赋值表达式具有计算机和赋值的双重功能。需要注意:赋值运算符的左侧必须是一个变量。

2.5.2 算术运算符和算术表达式

      1. 基本的算术运算符

         基本算术运算包括加、减、乘、除和求余运算均为双目运算符,所谓双目运算符是指运算时需要两个操作数。

                                                             基本算术运算符

运算符+-*/求余
名称%

       2.自增、自减运算符

         C语言有两个特殊运算符“++”和“--”。

   (1)++自增运算符,为单目运算符,其功能是使变量的值自加1。自增运算符有两种形式:

          前缀方式:用于变量前面,如“int a=++x;”它是“先计算,后使用”,即先将x的值自加1,然后将x的值赋给变量a。

          后缀方式:用于变量后面,如“int a=x++;”它是"先使用,后计算”,即先将x的值赋给变量a,然后再将x的值自加1。

    (2) --自减运算符,为单目运算符,功能是使变量的值自减1,使用方法和自增运算符相似。

注意:自增和自减运算符的操作对象只能是一个简单变量,不能是常量或表达式,如6--、(a+b)++都是错误的。

例: int a=3,b;

        b=a++;     b=a;a=a+1;

        b=++a;     a=a+1;b=a;

       3.算术运算符的优先级和结合性

   C语言规定了运算符的优先级和结合性,单目运算符是右结合的,双目算术运算符是左结合的。算术运算符的优先级为:“++、--、、”>“*、/、%”>“+、-”,即单目运算符的优先级高于双目运算符,双目算术运算符中*、/、%的优先级高于+、-。在优先级相同的情况下,按规定的”结合性“进行处理。

4.算数表达式

     算术表达式是由算术运算符、运算对象和括号连接起来的式子,运算对象可以是常量、变量和函数等。如a+b、3*(x+y)都是算术表达式。

算术表达式使用注意:

(1)表达式中的乘号不能省略,且表达式中的所有字符均应写在同一行上。

(2)在表达式中还可以使用多层圆括号(不能使用中括号【】和花括号{}),但是要注意括号的配对。

例2.13 输入一个3位的正整数,输出其反序数(如123反序数为321)

#include
int main()
{  int number,a,b,c;                                                       
   number=123;
   printf("输入的3位数为:%dn",number);                  
   a=number/100;                                                         
   b=(number-a*100)/10;                                              
   c=number%10;                                                         
   printf("反序数是:%d%d%dn",c,b,a);                      
   return 0;
}

运行结果:

输入的3位数为:123

反序数是:321

2.5.3 逗号运算符和逗号表达式

   C语言中逗号“,”也是一种运算符,称为逗号运算符,其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的一般形式为:

                                                                   表达式1,表达式2,...,表达式n

(1)逗号表达式执行的顺序是:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。

(2)逗号运算符是双目运算符,其优先级最低,是左结合。

(3)并非所有出现逗号的地方都为逗号表达式,如在变量说明语句中,以及函数参数表中逗号只是用作各变量之间的分隔符。

2.5.4 求字节数运算符

    运算符sizeof用于计算数据类型所占的字节数,它是一个单目运算符,优先级高于双目运算符,其一般格式如下:

(1)sizeof(表达式)或sizeof表达式

(2)sizeof(数据类型名)

例2.16

#include
int main()
{   int a,b;
    a=sizeof(3+5.0);
    b=sizeof 3+5.0;
    printf("%d,%d,%d\",a,b,sizeof("china"));
    return 0;
}
运行结果:

8,9,6

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604805.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号