我有一个int指针(int*count),如果我想增加使用++指向的整数,我以为我会调用
*count++;
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个构建警告"表达结果未使用".我可以打电话
*count += 1;
Run Code Online (Sandbox Code Playgroud)
但是,我想知道如何使用++.有任何想法吗?
我不明白后缀和前缀增量或减量的概念.谁能给出更好的解释?
我对C#编译器如何处理前后增量和减量有点困惑.
当我编写以下代码时:
int x = 4;
x = x++ + ++x;
Run Code Online (Sandbox Code Playgroud)
x之后会有10的价值.我认为这是因为预增量设置x为5,这使得它的5+5 计算结果为10.然后后增量将更新x为6,但不会使用此值,因为这10将被分配给x.
但是当我编码:
int x = 4;
x = x-- - --x;
Run Code Online (Sandbox Code Playgroud)
然后x将是2之后.任何人都可以解释为什么会这样吗?
public void increment(){
int zero = 0;
int oneA = zero++; // Compiles
int oneB = 0++; // Doesn't compile
int oneC = getInt()++; // Doesn't compile
}
private int getInt(){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它们都是int的,B&C为什么不编译?是否与++运营商的不同之处有关= 0 + 1;?
操作的参数无效++/ -
是否有一些程序员++i在正常的for循环中写入而不是写入i++?
我正在攻读OCPJP考试,因此我必须了解Java的每一个奇怪的细节.这包括增量前和增量后运算符应用于变量的顺序.以下代码给出了奇怪的结果:
int a = 3;
a = (a++) * (a++);
System.out.println(a); // 12
Run Code Online (Sandbox Code Playgroud)
答案不应该是11吗?或者13?但不是12!
跟进:
以下代码的结果是什么?
int a = 3;
a += (a++) * (a++);
System.out.println(a);
Run Code Online (Sandbox Code Playgroud) 为什么这样呢
int x = 2;
for (int y =2; y>0;y--){
System.out.println(x + " "+ y + " ");
x++;
}
Run Code Online (Sandbox Code Playgroud)
打印与此相同?
int x = 2;
for (int y =2; y>0;--y){
System.out.println(x + " "+ y + " ");
x++;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,正如我所理解的那样,首先使用"按原样"增加后增量.是否先添加预增量然后再使用.为什么这不适用于for循环的主体?
这是我的代码:
$a = 5;
$b = &$a;
echo ++$a.$b++;
Run Code Online (Sandbox Code Playgroud)
不应该打印66?
为什么打印76?
我理解它们之间的区别i++ and ++i,但我不太清楚为什么我得到以下结果:
static void Main(string[] args)
{
int c = 42;
c = c++;
Console.WriteLine(c); //Output: 42
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,因为这是将变量赋值给自己然后递增值,我希望结果是43.然而,它正在回归42.使用时也得到相同的结果c = c--;.
我意识到我可以简单地使用c++;并完成它,但我更好奇它为什么表现得如此.谁能解释一下这里发生了什么?
从下面或这里的程序,为什么最后一次调用System.out.println(i)打印值7?
class PrePostDemo {
public static void main(String[] args){
int i = 3;
i++;
System.out.println(i); // "4"
++i;
System.out.println(i); // "5"
System.out.println(++i); // "6"
System.out.println(i++); // "6"
System.out.println(i); // "7"
}
}
Run Code Online (Sandbox Code Playgroud)