




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
l 运算符的优先级:语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。l 运算符的结合性:语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。语言运算符中有不少为右结合性,应注意区别,以避免理解错误。3. 强制类型转换运算符其一般形式为: (类型说明符) (表达式)其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (float) a 把a转换为实型 (int)(x+y) 把x+y的结果转换为整型4. 自增、自减运算符自增,自减运算符:自增1运算符记为“+”,其功能是使变量的值自增1。自减1运算符记为“-”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式: +i i自增1后再参与其它运算。 -i i自减1后再参与其它运算。 i+ i参与运算后,i的值再自增1。 i- i参与运算后,i的值再自减1。在理解和使用上容易出错的是i+和i-。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。【例3.16】main()int i=8;printf(%dn,+i);printf(%dn,-i);printf(%dn,i+);printf(%dn,i-);printf(%dn,-i+);printf(%dn,-i-); i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再加1(为9);第5行输出i为9之后再减1(为8) ;第6行输出-8之后再加1(为9),第7行输出-9之后再减1(为8)。【例3.17】main()int i=5,j=5,p,q;p=(i+)+(i+)+(i+);q=(+j)+(+j)+(+j);printf(%d,%d,%d,%d,p,q,i,j);这个程序中,对P=(i+)+(i+)+(i+)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(+j)+(+j)+(+j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。String & String:operate=(const String &other/*/) if (this = &other) /这里为什么是&other?直接用other可以吗? /* 因为this是一个指针,指向这个对象本身.指针是地址,&other,&是求other的地址 只能用地址和地址来做比较 ,other是对象,&other才是对象的地址 */ return *this; /*this是引用类型吗?返回&this可以吗?/* 由于this是对象的地址,*this才是对象,如果返回&this,由于this已经是地址了,&this是地址的地址, 当然不行 */ delete m_data; m_data = new charstrlen(other.data)+1; strcpy(m_data, other.data); return *this; /同上 J+=2也就是相当于这样的J=J+2。就是先让J的值加上2,再把它赋给J,如果原先J是2的话,那么执行完J+=2之后,J的值就是4了还有类似的a- =3,同样,就是相当于a=a-3=c#中 条件运算符的用法悬赏分:5 - 解决时间:2009-6-1 08:56 int? x = null;int y = x ? -1;哪位哥哥,姐姐,告诉我这两句代码的意思?为什么要这样写?作用是什么?谢谢! 问题补充:using System;using System.Collections.Generic;using System.Text;namespace Test27 class Program static void Main(string args) int? x = null; int y = x ? -1; Console.WriteLine(y是0, y); Console.ReadLine(); 这段代码是可以运行的。提问者: jrg1980 - 一级最佳答案默认情况下,int类型的变量是值类型,不能赋值null.以下是解释为了实现Nullable数据类型转换成non-Nullable型数据,就有了一个这样的操作符”?(两个问号)“,双问号操作符意思是取所赋值?左边的,如果左边为null,取所赋值?右边的,比如int y = x ? -1 如果x为空,那么y的值为-1.于是这时候就可以把最上面第二段代码改成:string strParam= Request.Paramsparam? ;另外还有”?(单问号)“修饰符,是System.Nullable的缩写形式,比如int?代表是可空的整形,例如:int? a = 1 或者 int? b=null。Nullable类型具有一个HasValue的bool类型只读属性,当Nullable类型实例的该属性为true时,则表示该实例是非空实例,包含一个已知值Value,HasValue为false时,访问Value属性将导致System.InvalidOperationException。 条件运算符是C语言中唯一具的三目运算符,就是说它有三个运算对象。条件运算符的形式是? :由它构成的表达式称为条件表达式。其形式为: 表达式1 ? 表达式2 : 表达式3 条件运算符的?个:总是成对出现的。条件表达式的运算功能是:先计算表达式1的值,若值为非0,则计算表达式2的值,并将表达式2的值作为整个条件表达式的结果;若表达式1的值为0,则计算表达式3的值,并将表达式3的值作为整个条件表达式的结果。例如有以下条件表达式: (ab)?a+b:a-b 当a=8,b=4,c=3时,求解条件表达式的过程如下: 先计算关系式ab,结果为1,因其值为真,则计算a+b的结果为12,这个12就是整个条件表达式的结果。请特别注意,此时不再计算表达式a-b了。如果关系式ab的结果为0,就不再计算表达式a+b了。这一点在应用中很重要。 条件表达式的优先级高于赋值运算,但低于所有关系运算、逻辑运算和算术运算。其结合性是自右向左结合,当多个条件表达式嵌套使用时,每个后续的:总与前面最近的、没有配对的?相联系。例如在条件表达式a0 ? a/b:a0 ? a+b:a-b中,出现两个条件表达式的嵌套,求解这个表达式时先计算后面一个条件表达式a0 ? a/b:组合。 使用条件表达式可以使程序简洁明了。例如,赋值语句z=(ab)?a:b 中使用了条件表达
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产安全产品面试题
- 2025年工程安全考试复习题及答案指南
- 2025年金融风险分析师职业资格考试试题及答案解析
- 2025年健身教练专业认证考核试卷及答案解析
- 2025年健康食品营养师职业资格评价试题及答案解析
- 2025年建筑土木勘察师认证考试试题及答案解析
- 2025年计算机网络工程师专业能力考试试题及答案解析
- 2025年化学分析师专业知识鉴定试题及答案解析
- 2025年国际贸易实务考试试题及答案解析
- 2025年广告营销策划师资格认证考试试题及答案解析
- 单片机的看门狗
- 市场营销(第2版)课件全套 王永贵 第1-17章-市场与市场营销概述及发展-顾客营销学
- 高中数学 人教A版 必修一 《集合与常用逻辑用语》 1.1集合的概念
- 深圳某电厂锅炉维修改造施工组织设计-new(常用版)
- GB/T 4950-2021锌合金牺牲阳极
- GB/T 15171-1994软包装件密封性能试验方法
- 中药调剂技术-课件
- 证券从业考试基础模拟卷二(题目+解析)
- 水轮发电机讲义课件
- 信息系统运维服务方案
- 化工试生产总结报告
评论
0/150
提交评论