我見過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