-
結果是正確的。
這裡需要明確的是,++i 和 i++,問題 (--similar) + 之前是 ++ 操作,然後是 i 計算,然後是 ++。
現在分析你的主題。
x 是 x 變成 1 然後比較,當然也是真的。 y 變為 4 步驟 2:2>0&&2<5 y 變為 3
第 3 步:1>0&&3<5 y 變為 2
步驟 4:0>0&&4<5 無效。
x=3, y=2, z=0
-
你沒事。 從迴圈條件(z-->0&&+x<5)可以看出,變數z是第乙個不滿足條件的變數,因為它在三個迴圈後將不滿足條件z-->0。 如果不滿足這些條件,迴圈將退出。
由於總共只有三個週期,我可以看到 x=x+3=0+3=3,y=y-3=5-3=2,z=z-3=3-3=0
-
什麼是z-->0? 問題。
-
房東你好。
p 是 0x5f00,如果按 %p 列印 p,它應該是 00005f00(32 位系統)。
p+2 是 x+2,即 7。 (注意 * 的優先順序高於 +,先取值再取 +2) **p 是 x 是 5(*& 實際上是偏移量)。
3**p 是 3*x 是 15
p+4 是乙個位址,按理說應該按照 %p 列印,如果按 %d 列印,應該換成十進位0x5f00,即 24320,然後是 +4*sizeof(int),即 24320+4*2=24328。 (請注意,這裡的 p+4 和 4 是 sizeof(int) 的 4 倍)。
所以最終結果應該是。
00005f00 7 5 15 24328 我相信我的結果是正確的。
實驗:包括
void main()
輸出:0012ff44 7 5 15 1245012 這是用 x 的位址是 0x12ff44 和 int 是 4 個位元組來計算的,這是完全相同的。
-
0017fac0 7 5 15 1571536
您可以自己交換 x 的位址。
-
i=1 j=1 1%2! =0,j+2=3,i++i=2 j=3 3%2! =0,j+2=5,i++i=3 j=5 5%2!
0,j+2=7,i++i=4 j=7 7>5,休息
所以答案是 4,7
-
那裡是 i++。
第一次執行是 j+=2;j=3 第二次彈出這個迴圈 i=1 或執行 j+=2 j=5 彈出這個迴圈 i=2 或執行 j+=2 j=7 彈出這個迴圈 i=3 第四個 j>5 建立退出迴圈 j=7 i=4 四個迴圈 i 加到 4。
-
y=4,z=16,k=32 是乙個逗號表示式,裡面的表示式依次執行,結果是執行後最後乙個表示式的值,這裡賦值所有值後,結果是 k=32,即返回 32,然後 32 賦值給 x,所以列印 32。
-
在 C 語言中,系統會首先在編譯時為變數賦值,在定義 int 變數時,系統會自動將 int 變數賦給 -858993460,這通常在 Visual C++ 中編譯時提示。
例如,以下 C 語言**:
#include
void main()
int a;沒有為 int 變數賦值。
printf("%d",a);
輸出: -858993460
要改變這一點,你需要養成給變數提供初始值的習慣,比如在 C 中
#include
void main()
int a=0;將初始值 0 分配給 int 變數。
printf("%d",a);
輸出: 0
-
%c 表示接受字元 %d 表示整數。
-
1,2 呃。 指向第乙個元素。
-
int x=2,y=2,z=0,a;
a=++x ||y &&z++;因為 && 的優先順序是比較的 ||,所以 ++y&&z++ 是首選
因為 ++ 在操作中前面是 +1,而 ++ 本身後面是 +1,所以可以得到 3&&0=0;y=3,z=1
然後計算 ++x ||0=>3 ||0=1,x=3,所以你可以得到 a=1;
printf("%d,%d.%d ",x,y,z);輸出為 x=3, y=3, z=1;
-
開始:c[4]=
步行 1 次:i=0,c[4]=
2 次步行:i=1,c[4]=,3 次:i=2,c[4]=,4 次步行:
i=3,c[4]=,5次:i=3,c[4]=,6次:i=3,c[4]=,7次:
i=3,c[4]=,8 次步行:i=3,c[4]=,
while(x++<5),先和5比較,再加1,所以6也列印出迴圈,跳出迴圈後,x=7,再加2不是9!