我只需要使用一個指向char的指針來指定變量「i」的變量「j」的值。我無法編寫代碼,所以我看到這個解決方案,但我不明白「for」主體中會發生什麼。有人可以向我解釋嗎?有人可以解釋代碼?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char **argv) {
int i = 10;
int j = 20;
char *p, *q;
p = (char*)&i;
q = (char*)&j;
for(int k = 0; k < sizeof(i); ++k) {
*(q + k) = *(p + k);
}
printf("%d == %d\n", i, j);
return 0;
}
'*(q + k)'與'q [k]'相同。從那裏出發。 – dhke
指向char的指針將指向整數的單獨字節。你的循環運行'sizeof(i)'次數,它代表'integer i'在你的機器上的字節數。現在結合@dhke的評論 – Stefan
不確定你的問題是否適合這個標題。對於答案,for中的指令影響(p + k)地址的值到(q + k)地址處的塊中。 –