版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任亚茹2021年9⽉13⽇C语言程序设计—C语言的数据类型、
运算符和表达式主
要
内
容C语言的编程规范1C语言的数据类型2C语言变量的初始化34C语言的运算符与表达式一、C语言的编程规范(一)代码中的编程规范俗话说,“没有规矩,不成方圆。”虽然在C语言中编写代码是自由的,但是为了使编写的代码具有通用、友好的可读性,应该尽量按照一定的规范编写所设计的程序。1.代码缩进代码缩进统一为4个字符。不采用空格,而用<Tab>键制表位。一、C语言的编程规范(一)代码中的编程规范2.变量、常量命名规范常量命名统一为大写格式。如果是成员变量,均以m_开始。如果是普通变量,取与实际意义相关的名称,要在前面添加类型的首字母,并且名称的首字母要大写。如果是指针,则为其标识符前添加p字符,并且名称首字母要大写。例如:一、C语言的编程规范(一)代码中的编程规范3.函数的命名规范在定义函数时,函数名的首字母要大写,其后的字母大小写混合。例如:4.注释尽量采用行注释。如果行注释与代码处于一行,则注释应位于代码右方。如果连续出现多个行注释,并且代码较短,则应对齐注释。例如:一、C语言的编程规范(二)关键字C语言中有32个关键字,如下表所示:一、C语言的编程规范(三)标识符在C语言中为了在程序的运行过程中可以使用变量、常量、函数、数组等,就要为这些形式设定一个名称,而设定的名称就是所谓的标识符。C语言标识符应该遵守的一些命名规则。1.所有标识符必须由字母或下划线开头,而不能使用数字或者符号作为开头一、C语言的编程规范(三)标识符2.在设定标识符时,除开头外,其他位置都可以由字母、下划线或数字组成3.英文字母的大小写代表不同的标识符,也就是说,在C语言中是区分大小写字母的一、C语言的编程规范(三)标识符4.标识符不能是关键字。关键字是定义一种类型使用的字符,标识符不能使用。例如,定义整型数据时,系统使用了int关键字,因此用户定义的标识符就不能再使用int,如果使用会提示编译错误。但将其中标识符的字母改成大写字母,就可以通过编译。一、C语言的编程规范(三)标识符5.标识符的命名最好具有相关的含义。将标识符设定成有一定含义的名称,不但可以方便程序编写,并且在以后回顾程序时,会更容易读懂。6.
ANSI标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分.这是因为某些编译程序(如IBMPC的MSC)仅能识别前6个字符。二、C语言的数据类型程序在运行时要做的内容就是处理数据。程序要解决复杂的问题,就要处理不同的数据。不同的数据都是以自己本身的一种特定形式存在的(如整型、字符型、实型等),不同的数据类型占用不同的存储空间,C语言中有多种不同的数据类型,如右图。二、C语言的数据类型(一)常量与变量1.常量在程序执行过程中,其值不发生改变的量称为常量。根据书写方式,常量可分为直接常量和符号常量。(1)直接常量:如4、23;1.23;'a'、'b';''CHINA''等(2)符号常量:用#define指令,指定一个标识符代表一个常量。例如,#definePI3.1415926//定义符号常量PI经过以上定义,本文件中从此行开始,所有的PI都代表常量3.1415926。说明:标识符是用来标识变量名、符号常量名、宏名、函数名、数组名、类型名、文件名的有效字符序列。C语言规定标识符只能由字母、数字、下画线3种字符组成,且第一个字符必须是字母或下画线。二、C语言的数据类型(一)常量与变量2.变量在程序执行过程中,其值可以改变的量称为变量。变量必须“先定义,后使用”。定义变量后,编译系统为每个变量名分配对应的内存地址,即一个变量名对应一个存储单元。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。变量名和变量值是两个不同的概念,应加以区分。二、C语言的数据类型(二)整型数据
二、C语言的数据类型(二)整型数据2.整型变量(1)整型变量的分类归纳起来,有10种整型变量,在VC++系统中对应的数值范围如下:
二、C语言的数据类型(二)整型数据2.整型变量(2)整型变量在内存中的存储形式(以单字节整型数据为例)
有符号的数值在计算机系统(包括嵌入式系统)内存中是以补码形式存放的。对于有符号的整数:正数的补码与原码相同;负数的补码=2n-(负数的绝对值),其中n是二进制位数,2n代表n位二进制数的模。例如8位二进制整数,[-1]补=28-|-1|=0xff,[-128]补=28-|-128|=0x80。从表中可以看出,对于有符号的单字节整型数据,
0~127对应的二进制数最高位为0,表示为正数;
-1~-128对应的二进制数最高位为1,表示为负数。二、C语言的数据类型(二)整型数据2.整型变量(3)定义整型变量的方法1)若定义一个变量,定义格式为:类型标识符变量名;
例如:inti;//定义有符号基本整型变量iunsignedintj;//定义无符号基本整型变量j2)若同时定义多个同类型的变量,定义格式为:类型标识符变量名1,变量名2,变量名3,…;
例如:inti,j,k;//同时定义三个基本整型变量i、j、k定义变量后,系统将根据变量的类型给变量分配对应大小的内存空间,用于存储该变量。例如:shortinti;//定义短整型变量ii=10;//给变量i赋值二、C语言的数据类型(三)字符型数据1.字符常量
C语言中,用一对单撇号括起来的一个字符,称为字符常量,例如:'A','6','+'等。还有一种以“\”开头的字符序列,称为“转义字符”。常用的转义字符及其含义如下:二、C语言的数据类型(三)字符型数据2.字符变量字符变量用来存放字符,并且只能存放1个字符,而不可以存放由若干个字符组成的字符串。字符变量的类型标识符是char,定义字符变量的格式与整型变量相同。例如:charc1,c2;//定义字符变量c1、c2c1='a';c2='b';//给变量c1赋值'a',变量c2赋值’b’3.字符型数据在内存中的存储形式及使用方法一个字符变量在内存中占一个字节。字符型数据在内存中存储的是该字符对应的ASCII码。
字符型数据的存储形式与单字节整型数据相同。因此,字符型可以当作单字节整型。二、C语言的数据类型(三)字符型数据【例1.3】向字符变量赋整数。
#include<stdio.h>intmain(void){charc1;//定义字符变量
c1=97;//给变量c1赋整数(将ASCII码值97赋给变量c1)
printf("%c\n",c1);//以字符形式输出变量c1的值(ASCII码值对应的字符)
printf("%d\n",c1);//以整数形式输出变量c1的值(字符对应的ASCII码)}二、C语言的数据类型(三)字符型数据【例1.4】输出给定小写字母对应的大写字母。#include<stdio.h>intmain(void){charc1,c2;//定义字符变量
c1='a';c2='b';//给字符变量赋字符常量
c1=c1-32;c2=c2-32;//将字符变量对应的ASCII码值更新
printf("%c,%c\n",c1,c2);//以字符形式输出变量c1和c2的值}二、C语言的数据类型(三)字符型数据4、字符串常量字符串常量是由一对双撇号括起的字符序列。例如:“CHINA”,“Cprogram”,“a”,“$12.5”等都是合法的字符串常量。字符串常量和字符常量是不同的量,他们之间主要有以下区别:(1)字符常量由单撇号括起来,字符串常量由双撇号括起来。(2)字符常量只能是一个字符,字符串常量则可以含一个或多个字符。(3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有专门的字符串变量。但是可以用一个字符数组来存放一个字符串常量,这将在3.3节中介绍。(4)字符常量占用一个字节空间,而字符串常量占用的字节数取决于串中字符的个数。例如:"CHINA"在内存中的存储情况:字符串末尾的'\0'是系统自动加上去的“字符串结束标志”。其ASCII码为0,表示空操作,既不引起任何控制动作,也不可显示。因此字符串常量"CHINA"在内存中占用6个字节。【思考】字符常量'a'和字符串常量"a"有何区别?二、C语言的数据类型(四)实型数据1、实型常量实型常量也称实数,在C语言中,实数有两种表示形式:(1)十进制小数形式。它由数字和小数点组成(注意,必须要有小数点)。0.123、123.、123.0、0.0都是十进制小数形式。(2)指数形式。如123e3或123E3都代表123×103。要注意字母e(或E)之前必须要有数字,且e后面的指数必须为整数,如e2、4e2.5、.e3、e都不是合法的指数形式。
一个实数可以有多种指数表示形式。例如123.456可以表示为12345.6e-2、1234.56e-1、123.456e0、12.3456e1、1.23456e2、0.123456e3、0.0123456e4等形式,其中1.23456e2成为“规范化的指数形式”,即在字母e(或E)之前的小数部分中,小数点前有且只有一位非零数字。在程序中以指数形式输出一个实数时,会以规范化的指数形式输出。可见,在实数123.456的多种指数表示形式中,小数点的位置是可以在123456几个数字之间、之前或之后(加0)浮动的,只要在小数点位置浮动的同时改变指数的值,就可以保证它的值不变。由于小数点的位置可以浮动,因此实数的指数形式又称为浮点数。二、C语言的数据类型(四)实型数据2、实型变量根据实型数据的数值范围和精度,实型变量的类型主要有单精度(float)型和双精度(double)型。需要注意:实型数据在计算机内存中的存储精度有限,不可能得到完全精确的数值。实型数据的类型及数值范围。二、C语言的数据类型(四)实型数据2、实型变量【例1.5】实型变量的定义、赋值和输出。#include<stdio.h>intmain(void){ floatx;//定义实型变量xx=12.3;//将实型常数12.3赋给变量xprintf("%f\n",x);//以小数形式输出变量x的数值
printf("%e\n",x);//以指数形式输出变量x的数值}三、C语言变量的初始化C语言允许在定义变量的同时,对变量赋初值,即变量的初始化。例如:inta=3;//定义整型变量a,并赋初值3floatb=1.23;//定义实型变量b,并赋初值1.23charc='a';//定义字符变量c,并赋初值'a’当一次定义同类型的多个变量时,可以给全部变量或部分变量赋初值。inta,b,c=5;//定义a、b、c三个整型变量,只给c赋初值5inta=1,b=2,c=3;//定义a、b、c三个整型变量,并赋不同的初值inta=3,b=3,c=3;//定义a、b、c三个整型变量,并赋相同的初值3注意,对3个变量赋相同的初值3时,不能写成:inta=b=c=3;三、C语言变量的初始化常变量在定义变量并对变量初始化时,如果加上关键字const,则变量的值在程序运行期间不再改变,这种变量称为常变量(constantvariable),也称为只读变量。例如:constinta=5;//用const声明整型变量a为常变量,其值始终是5。如前所述,定义变量后,编译系统为每个变量名分配对应的内存单元。一般变量对应内存单元中的值是可以变化的,但常变量对应内存单元中的值被限定不变,因此常变量也被称为只读变量。另外,需要区分用#define指令定义的符号常量和用const定义的常变量。符号常量只是用一个符号代表一个常量,它没有类型,在内存中并不存在符号常量名对应的存储单元。而常变量具有变量的特征,它具有类型,在内存中存在与变量名对应的存储单元。四、C语言的运算符与表达式(一)表达式表达式是C语言的主体。在C语言中,表达式由操作符和操作数组成。最简单的表达式可以只含有一个操作数。根据表达式含有的操作符的个数,可以把表达式分为简单表达式和复杂表达式两种:简单表达式是只含有一个操作符的表达式,而复杂表达式是包含两个或两个以上操作符的表达式。下面通过几个表达式进行观察:5+5iNumber+9iBase+(iPay*iDay)表达式本身什么事情也不做,只是返回结果值。在程序不对返回的结果值进行任何操作的情况下,返回的结果值不起任何作用,也就是忽略返回的值。四、C语言的运算符与表达式(一)表达式表达式产生作用有两种情况:放在赋值语句的右侧(下面要讲解)。放在函数的参数中(在“函数”章进行讲解)。表达式返回的结果值是有类型的。表达式隐含的数据类型取决于组成表达式的变量和常量的类型。说明:每个表达式的返回值都具有逻辑性。如果返回值是非零的,那么该表达式返回真值,否则返回假值。通过这个特点,可以将表达式放在用于控制程序流程的语句中,这就构建了条件表达式。四、C语言的运算符与表达式(一)表达式#include<stdio.h>intmain(){ intiNumber1,iNumber2,iNumber3; /*声明变量*/ iNumber1=3; /*为变量赋值*/ iNumber2=7; printf("thefirstnumberis:%d\n",iNumber1);/*显示变量值*/ printf("thesecondnumberis:%d\n",iNumber2); iNumber3=iNumber1+10; /*表达式中利用变量iNumber1加上一个常量*/ printf("thefirstnumberadd10is:%d\n",iNumber3);/*显示iNumber3的值*/ iNumber3=iNumber2+10; /*表达式中利用变量iNumber2加上一个常量*/ printf("thesecondnumberadd10is:%d\n",iNumber3);/*显示iNumber3的值*/ iNumber3=iNumber1+iNumber2; /*表达式中是两个变量进行计算*/ printf("theresultnumberoffirstaddsecondis:%d\n",iNumber3);/*将计算结果输出*/ return0;/*程序结束*/}四、C语言的运算符与表达式(二)算术运算符及其表达式1、基本的算术运算符【例1.7】将两位十进制整数的十位数和个位数分离。#include<stdio.h>intmain(void){ inta=23; intb,c; b=a/10; //求变量a的十位数
c=a%10; //求变量a的个位数
printf("a=%d\n",a);//输出变量a的值
printf("十位=%d\n",b);//输出变量a对应的十位数
printf("个位=%d\n",c);//输出变量a对应的个位数}四、C语言的运算符与表达式(二)算术运算符及其表达式1、基本的算术运算符【思考与实验】在嵌入式软件设计中,有时需要将多位十进制数的各位数字分别送至不同位数码管显示,请利用/和%运算符将一个3位十进制整数的百位、十位、个位分离。inti=123;inta,b,c;a=i/100;//百位b=i/10%10;//十位c=i%10;//个位四、C语言的运算符与表达式(二)算术运算符及其表达式2、自增、自减运算符自增运算符++:使变量的值自增1,相当于i=i+1。自减运算符--:使变量的值自减1,相当于i=i-1。有以下4种形式的表达式:
i++表达式先用i的值,然后对i的值加1(先用后加)
++i先对i的值加1,然后表达式用i加1的值(先加后用)
i--表达式先用i的值,然后对i的值减1(先用后减)
--i先对i的值减1,然后表达式用i减1的值(先减后用)四、C语言的运算符与表达式(二)算术运算符及其表达式2、自增、自减运算符【例题】自增、自减运算符的应用#include<stdio.h>intmain(void){inti=3,j=3,k=3,x=3; printf("%d\t",i++);printf("i=%d\n",i);printf("%d\t",++j);printf("j=%d\n",j);printf("%d\t",k--);printf("k=%d\n",k);printf("%d\t",--x);printf("x=%d\n",x);}可见,由自增(自减)运算符构成不同形式的表达式时,对变量而言,自增1(自减1)都具有相同的效果,但对表达式而言却有着不同的值。说明:(1) 自增、自减运算符只能用于变量,不能用于常量或表达式。如5++或(a+b)++都是不合法的。(2) 自增、自减运算符常用在循环语句中,使循环变量自动加1、减1;也常用于指针变量,使指针指向下一个地址。这将在后续章节中介绍。四、C语言的运算符与表达式(二)算术运算符及其表达式3、算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象(常量、变量或表达式等)连接起来的、符合C语法规则的式子,称为C算术表达式。例如:a+b*c-5/2+'a'。C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级高低次序执行,例如表达式x-y*z相当于x-(y*z)。如果在一个运算对象两侧的运算符的优先级相同,则按照规定的“结合方向(结合性)”处理。算术运算符的结合方向为“自左向右(左结合性)”,即先左后右。因此表达式a+b-c相当于(a+b)-c。附录C给出了C语言运算符的优先级和结合性,供查询参考。四、C语言的运算符与表达式(三)算术运算符及其表达式3、
强制类型转换运算符及其表达式可以利用强制类型转换运算符将一个表达式转换成所需要的类型。强制类型转换表达式的一般形式:(类型标识符)(表达式)例如:(int)i将i转换为整型(float)(x+y)将x+y的结果转换为float型
(int)x+y将x转换成整型后,再与y相加四、C语言的运算符与表达式(三)算术运算符及其表达式3、
强制类型转换运算符及其表达式【例题】强制类型转换运算符的应用:将实型数据转换为整型。#include<stdio.h>intmain(void){inti;//定义整型变量ifloatx=2.4F;//定义实型变量x,并赋初值
i=(int)x;//将实型变量x强制转换为int型
printf("x=%f,i=%d\n",x,i);}四、C语言的运算符与表达式(四)赋值运算符与赋值表达式在声明变量时,可以为其赋一个初值,就是将一个常数或者一个表达式的结果赋值给一个变量,变量中保存的内容就是这个常量或者赋值语句中表达式的值。这就是为变量赋初值。1.变量赋值为常数一般的形式是:类型变量名=常数;其中的变量名也称为变量的标识符。通过变量赋初值的一般形式,以下是相关的代码实例:charcChar='A';intiFirst=100;floatfPlace=1450.78f;四、C语言的运算符与表达式(四)赋值运算符与赋值表达式2.变量赋值为赋值表达式赋值语句把一个表达式的结果值赋给一个变量。一般的形式是:类型变量名=表达式;可以看到,其一般形式与常数赋值的一般形式是相似的,例如:intiAmount=1+2;floatfPrice=fBase+Day*3;在上面的举例中,得到赋值的变量iAmount和fPrice称为左值,因为它出现的位置在赋值语句的左侧。产生值的表达式称为右值,因为它出现的位置在表达式的右侧。注意:这是一个重要的区别,并不是所有的表达式都可以作为左值,如常数只可以作为右值。四、C语言的运算符与表达式(四)赋值运算符与赋值表达式【例】为变量赋初值。为变量赋初值的操作是编程时常见的操作。在本实例中,模拟钟点工的计费情况,使用赋值语句和表达式得出钟点工工作8个小时后所得的薪水。#include<stdio.h>intmain(){ intiHoursWorded=8;/*定义变量,为变量赋初值。表示工作时间*/ intiHourlyRate; /*声明变量,表示一个小时的薪水*/ intiGrossPay; /*声明变量,表示得到的工资*/ iHourlyRate=13; /*为变量赋值*/ iGrossPay=iHoursWorded*iHourlyRate; /*将表达式的结果赋值给变量*/ printf("TheHoursWordedis:%d\n",iHoursWorded); /*显示工作时间变量*/ printf("TheHourlyRateis:%d\n",iHourlyRate);/*显示一个小时的薪水*/ printf("TheGrossPayis:%d\n",iGrossPay);/*显示工作所得的工资*/ return0; /*程序结束*/}四、C语言的运算符与表达式(四)赋值运算符与赋值表达式2.复合的赋值运算符及其表达式在简单赋值运算符“=”之前加上其他运算符,可构成复合的赋值运算符。
a+=3等价于a=a+3a-=3等价于a=a-3a*=3等价于a=a*3a/=3等价于a=a/3a%=3等价于a=a%3a*=b+2等价于a=a*(b+2)四、C语言的运算符与表达式(四)赋值运算符与赋值表达式3.类型转换如果赋值运算符“=”两侧的数据类型不一致,但同为数值型数据,在赋值时,系统会自动进行类型转换。下面介绍3种常见的情况。(1)将整型数据赋给整型变量【例1.10】将无符号整型数据赋给有符号整型变量。#include<stdio.h>intmain(void){ unsignedchara=255; signedcharb; b=a; printf("a=%d\n",a); printf("b=%d\n",b);}正数变成了负数
四、C语言的运算符与表达式(四)赋值运算符与赋值表达式3.类型转换(1)将整型数据赋给整型变量【例1.11】将有符号整型数据赋给无符号整型变量。#include<stdio.h>intmain(void){ signedchara=-1; unsignedcharb; b=a; printf("a=%d\n",a); printf("b=%d\n",b);}负数变成了正数
由以上运行结果可以看出,无符号的整型与有符号的整型之间相互赋值时,容易出错,其原因是负数在内存中是以补码形式存储的,如-1的补码是255(0xff)四、C语言的运算符与表达式(四)赋值运算符与赋值表达式3.类型转换(1)将整型数据赋给整型变量【例1.12】将短字节整型数据赋给长字节整型变量。#include<stdio.h>intmain(void){ unsignedchara=255; unsignedintb; b=a; printf("a=%d\n",a); printf("b=%d\n",b);}四、C语言的运算符与表达式(四)赋值运算符与赋值表达式3.类型转换(1)将整型数据赋给整型变量【例1.13】将长字节整型数据赋给短字节整型变量。#include<stdio.h>intmain(void){ unsignedchara=255,b=1; unsignedcharc; c=a+b; printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c);}
有误!如何解决?四、C语言的运算符与表达式(四)赋值运算符与赋值表达式3.类型转换(1)将整型数据赋给整型变量【例1.13】将长字节整型数据赋给短字节整型变量。#include<stdio.h>intmain(void){unsignedchara=255,b=1;unsignedcharc;c=a+b;printf("a=%d\n",a); printf("b=%d\n",b); printf("c=%d\n",c);}
有误!如何解决?四、C语言的运算符与表达式(四)赋值运算符与赋值表达式3.类型转换(2)将实型数据赋给整型变量【例1.14】将实型数据赋给整型变量。#include<stdio.h>intmain(void){floata=1234.567F;intb;b=a;printf("a=%f\n",a); printf("b=%d\n",b);}四、C语言的运算符与表达式(四)赋值运算符与赋值表达式3.类型转换(3)将整型数据赋给实型变量【例1.15】将整型数据赋给实型变量。#include<stdio.h>intmain(void){inta=1234;floatb;b=a;printf("a=%d\n",a); printf("b=%f\n",b);}通过上述例题可以看出,在赋值运算中,需要根据数据的类型和数值的范围为变量指定合适的类型,必要时还需要借助强制类型转换运算符,以防出错。
四、C语言的运算符与表达式(五)关系运算符及其表达式1、关系运算符及其优先级次序关系运算符包括大于运算符、大于等于运算符、小于运算符、小于等于运算符、等于运算符、不等于运算符。表中列出了这6种关系运算符所对应的符号。四、C语言的运算符与表达式(五)关系运算符及其表达式1、关系运算符及其优先级次序四、C语言的运算符与表达式(五)关系运算符及其表达式2、关系表达式用关系运算符将两个表达式连接起来的式子,称为关系表达式。
关系表达式的值是一个逻辑值:“真”或“假”。例如关系表达式“5==3”的值为“假”,“5>=0”的值为“真”。关系运算结果,以“1”代表“真”,以“0”代表“假”。若a=3,b=2,c=1,则:四、C语言的运算符与表达式(五)关系运算符及其表达式2、关系表达式关系运算符用于对两个表达式的值进行比较,返回一个真值或者假值。返回真值还是假值取决于表达式中的值和所用的运算符。其中真值为1,假值为0,真值表示指定的关系成立,假值则表示指定的关系不正确。例如:7>5 /*因为7大于5,所以该关系成立,表达式的结果为真值*/7>=5 /*因为7大于5,所以该关系成立,表达式的结果为真值*/7<5 /*因为7大于5,所以该关系不成立,表达式的结果为假值*/7<=5 /*因为7大于5,所以该关系不成立,表达式的结果为假值*/7==5 /*因为7不等于5,所以该关系不成立,表达式的结果为假值*/7!=5 /*因为7不等于5,所以该关系成立,表达式的结果为真值*/关系运算符通常用来构造条件表达式,用在程序流程控制语句中,例如if语句是用于判断条件而执行语句块,在其中使用关系表达式作为判断条件,如果关系表达式返回的是真值则执行下面的语句块,如果为假值就不去执行。代码如下:if(Count<10){ … /*判断条件为真值,执行代码*/}其中,if(iCount<10)就是判断iCount小于10这个关系是否成立,如果成立则为真,如果不成立则为假。四、C语言的运算符与表达式(五)关系运算符及其表达式2、关系表达式关系运算符的结合性都是自左向右的。使用关系运算符的时候常常会判断两个表达式的关系,但是由于运算符存在着优先级的问题,因此如果不小心处理则会出现错误。例如要进行这样的判断操作:先对一个变量进行赋值,然后判断这个赋值的变量是否不等于一个常数,代码如下。if(Number=NewNum!=10){ …}因为“!=”运算符比“=”的优先级要高,所以NewNum!=0的判断操作会在赋值之前实现,变量Number得到的就是关系表达式的真值或者假值,这样并不会按照之前的意愿执行。前文曾经介绍过括号运算符,括号运算符的优先级具有最高性,因此使用括号来表示要优先计算的表达式,例如:if((Number=NewNum)!=10){ …}这种写法比较清楚,不会产生混淆,没有人会对代码的含义产生误解。由于这种写法格式比较精确简洁,因此被多数的程序员所接受。四、C语言的运算符与表达式(六)逻辑运算符及其表达式1、逻辑运算符及其优先级次序几种运算符的优先级次序如右图所示:a>b&&c>d等价于(a>b)&&(c>d)!a==b||c<d等价于
(!a==b)||(c<d)a+b>c&&x+y<d等价于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水泥厂安全操作办法
- 教学大纲-中小企业管理技能与实务(第三版)
- 物流行业职业发展导论
- AI行业龙头企业分析
- 印刷厂质量检验细则
- 某玻璃厂成本控制方案
- 秋季健康生活指南
- 某食品厂卫生管理方案
- 电力安全快板词讲解
- 水力发电女生职业前景
- 音乐制作及音乐节策划操作手册
- ISO9001-2015质量管理体系版标准
- 门式钢结构安装施工方案
- DB14∕T 2163-2020 信息化项目软件运维费用测算指南
- JJF(苏) 283-2024 暂态地电压法局部放电检测仪校准规范
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- DL∕T 593-2016 高压开关设备和控制设备标准的共用技术要求
- TB10001-2016 铁路路基设计规范
- 沪教版九年级化学上册单元测试题及答案全套
- 高中生生涯规划档案
- 露天非煤矿山安全隐患排查登记表
评论
0/150
提交评论