在两种常用的语言中,最基本的运算符用法不一样,确实很容易混淆。
先看几段小程序运行结果
java中:
public class Test1 {
public static void main(String args[]){
int i=0,k;
k = ++i + ++i + ++i + i++; // 讨论的 表达式
// i=++i + ++i + ++i + i++;
System.out.println("k= "+i);
System.out.println("i= "+i);
}
}
k=9 i=4
C语言中:
#include <stdio.h>
void main()
{
int i=0,k=0;
k = ++i + ++i + ++i + i++; //讨论的表达式
// i=++i + ++i + ++i + i++;
printf("k=%d, i=%d\n",k,i);
}
k=10 i=4
同样的表达式,也是最基本的运算符在不同的语言中结果不一致,很郁闷……我们来分析一下
在C语言中 ++i 返回的是应用类型 i++ 返回的是值类型 ,具体点说
k = ++i + ++

本文探讨了C语言和Java中预增++i和后增i++运算符的区别。通过示例代码展示,在相同表达式下,两者的执行顺序和结果存在差异,主要在于C语言中++i返回的是应用类型,而i++返回值类型。在Java中,运算符的执行不受后续操作影响。此外,文章还分析了赋值运算符在两种语言中的不同行为,解释了为何在特定情况下,同一表达式会导致不同的结果。
最低0.47元/天 解锁文章
986

被折叠的 条评论
为什么被折叠?



