【发布时间】:2013-12-11 06:26:36
【问题描述】:
我正在尝试像在小端机器中一样向后打印内存地址,但由于某种原因,我的程序在我的程序中输出了两个 char 数组。
char address[8];
char result[16];
scanf("%s", address);
int x = 1;
for(x; x<5; x++)
{
int y = 4*x;
int z = 8 - 2*x;
result[y-4] = '\\';
result[y-3] = 'x';
result[y-2] = address[z];
result[y-1] = address[z+1];
}
printf("%s", result);
例如,如果我输入“12345678”,它会输出"\x78\x56\x34\x1212345678"
我想要"\x78\x56\x34\x12",但我不明白为什么还要打印"12345678"。
【问题讨论】:
-
'\0'在哪里? -
我建议您阅读更多关于 C 中的字符串及其工作原理的信息。