我见过OCA问题这个问题,需要知道为什么它输出90和不100. 下面是代码: int x = 9;
long y = x * (long) (++x);
System.out.println(y);
所以,我认为这会做的是,首先,增加x (因为这是发生在第一个正确的?),然后它会做类型提升,并采取左边的X是10,把它变长,并乘以这两个多头。对?
我已经注意到使用预增加运算符时宏函数的这种奇怪的行为。我知道这是不是最好使用预增运算符与宏,但我仍想知道以下两个代码的执行背后的原因: #include <stdio.h>
#define SQR(x) {x*x }
int main()
{
int a=4;
int b=SQR(a++);
int c=SQR(++a);
printf("%d..
有人可以解释下面的代码中发生了什么吗? (取自GeeksForGeeks) int main(){
int a = 10;
++a = 20; // works
printf("a = %d", a);
getchar();
return 0;
}
执行语句++ a = 20时发生了什么?另外,请说明为什么此代码执行失败? int main(){
int a = 10;
以下程序给出的输出为17,29,45;我不明白**++pp;是什么意思。任何人都可以详细解释程序。 #include <stdio.h>
int main() {
static int a[] = {10, 22, 17, 29, 45};
static int *p[] = {a, a + 2, a + 1, a + 4, a + 3};
int