先分析一下这个表达式:
x+=expr //expr代表一个表达式
1. 对于Java: x的值是在计算expr之前被提取的。
2. 对于C: x的值是在计算完expr之后才被提取的。
看个例子:
int x=2; int y=3; x+=y+=x+=y;
请问:以上代码执行完之后,x和y的值各变成了多少?
在Java中: x变成了10;y变成了8。 在C中: x变成了13;y变成了8。
我们来做一下分析:
在Java中:由于被之前提取
1. 首先最右边的式子:x+=y
将x提取到中间变量temp中: temp1=x(此时temp==2).执行完x+=y之后,x变成5.
2. 接下来到了中间的式子:y+=x
首先提取y,temp2=y。执行完y+=x之后y=temp1+x=3+5,y变成了8.
3。最后到了最左边的这个式子:x+=y
在这里实际上执行的是x=temp1+y=2+8(实际上Java用了中间变量机制)
在这里C语言执行的是x=x+y=5+8(C语言没有中间变量机制)
相关推荐
5. C语言do-while循环和switch-case结构:该程序包含一个do-while循环,其中switch-case用于处理不同情况。在每次循环中,n的值将被累加。由于k初始为5,循环会执行两次,输出n的值分别为0和2。最终输出结果为"02",...
在学生表的例子中,选项A返回所有学生的总数,选项B返回"所在系编号"列中不同值的数量,选项C和D使用了GROUP BY子句,这意味着它们返回每个学号出现的次数。因此,返回值为3的选项是D,因为它按学号分组并计算每个组...
- **指针定义**:在C/C++等编程语言中,指针变量用于存储另一个变量的内存地址。 - **指针操作**:可以通过指针变量间接访问和修改其所指向的变量的值。 ### 19. Windows 文件操作 - **知识点**: - **文件拖动*...
然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中...
在上面的例子中,`display` 方法被重载了两次,一次接受一个整型参数,另一次接受一个字符串参数。 ### 2. 一维数组与二维数组的创建 #### 一维数组 **定义**:一维数组是一组连续内存空间中存储的同类型数据集合...
例如,在创建一个学生信息表时,我们需要定义字段如“学号”、“姓名”、“性别”等,并指定每个字段的数据类型和长度。 #### 2. Access 2003中的视图切换 - **知识点**: 在Access 2003中,可以在设计视图和数据表...
题目中的正规表达式r=(a|b|c)(0|1)*描述了一个由字符'a'、'b'或'c'开头,后跟任意数量的'0'或'1'组成的字符串集,这个集合是无限的,因为'0'和'1'可以无限次重复。 #### 语法分析与树结构 在编译程序的语法分析阶段...
- **解析**: `String` 类的对象是不可变的,这意味着一旦创建了一个 `String` 对象,它的值就不能被更改。相反,`StringBuffer` 是可变的,可以在运行时修改其内容,因此适用于需要频繁修改字符串内容的场景。 ####...
所以很少存在简单重复的工作,加上Java 代码的精炼性和面向对象纯洁性(设计模式是 java 的灵魂),编程工作将变成一个让你时刻 体验创造快感的激动人心的过程. 为能和大家能共同探讨"设计模式",我将自己在学习中的心得...
在给定的例子中,由于`fun`函数内部尝试修改了一个未定义的全局变量`s`,这会导致`UnboundLocalError`异常。 #### 23. C语言中的宏定义使用 - **知识点**: C语言中的宏定义使用`#define`指令。在示例程序中,由于`S...
Java中提供了一个专门用于将日期格式化为字符串的类`DateFormat`,但题目中的括号可能是笔误,正确答案应为`DateFormat`类。 ### 12. 关系数据库操作——投影 从关系模式中选择若干属性组成新的关系称为**投影**。...
关于内嵌代码和my变量的忠告... 338 使用内嵌代码匹配嵌套结构... 340 正则文字重载... 341 正则文字重载的问题... 344 模拟命名捕获... 344 效率... 347 办法不只一种... 348 表达式编译、/o修饰符、qr/·...
与开发人员在测试组环境多次重复以上步骤,发现11群的计次表话单有时正常,有时其出中继群号就为一个随机值,发生异常的频率比较高。为什么其它群的话单正常,唯独11群不正常呢?11群是四个群中最小的群,其中继计...
- **题目描述**:给出了一个具体的C语言switch-case结构的例子,展示了如何使用break和default关键字。 - **知识点详解**: - **switch-case**:这是一种多路分支结构,用于根据不同的条件执行不同的代码块。如果...
假设有一个简单的C程序,由几个源文件组成,每个源文件包含不同的函数。编译这些源文件后,会得到多个目标文件。链接器的任务就是将这些目标文件合并,并解决各个目标文件之间的符号引用问题,最终生成一个可执行...
在设计Access数据库中的表时,应遵循的原则包括:每个表仅包含一个主题的信息、表中不应包含重复信息、信息不应在表间复制等。 ### 26. 数据库设计步骤 在数据库设计过程中,确定需要哪些表是一项非常关键的步骤。 ...
- 在条件宏设计中,连续重复的条件可以使用符号 `…` 替代,以减少重复编写相同条件的工作量。 ### 17. 关系数据库的操作 - **知识点概述**:关系数据库中的基本操作包括选择、投影和连接等。 - **详细解释**: ...
此外,我们还需要一个变量times记录已用时间,以及一个变量NEW_START记录游戏是否可以开始。 为了生成随机数数组,我们可以编写一个getNum()函数,确保生成的数组包含十个互不相等的随机数,然后将每个数字复制一份...