C语言求助
# include <stdio.h>int main()
{
int b = {1,2,3,8,9,10};
int i;
for (i = 0; i < 6; ++i)
printf("%o\n", &b);
return 0;
}
在在VC++6.0的输出结果是:
4577550
4577554
4577560
4577564
4577570
4577574
Press any key to continue
为什么输出地址不是连续相等的变化呢? 每个地址能存多少个字节? 因为每一个int变量占四个字节,而一个地址值表示一个字节,那么数组的每一个元素的地址值差为4。
因为你的输出是%o,为八进制输出,所以0+4=4,4+4就进位了,末位为0 。
你可以改变下输出为十进制,这样就更好理解 printf("%o\n")输出的是8进制数啊4577560==4577554+4
地址可以说的内存的编号,你所说的一个地址就是一个字节。
scdwuhan 发表于 2016-7-1 14:09
因为每一个int变量占四个字节,而一个地址值表示一个字节,那么数组的每一个元素的地址值差为4。
因为你的 ...
谢谢,竟然忘记这个了···· 小剑剑 发表于 2016-7-1 15:18
printf("%o\n")输出的是8进制数啊4577560==4577554+4
地址可以说的内存的编号,你所说的一个地址就是一个 ...
谢谢,竟然忘记这个了···· 学习电脑 发表于 2016-7-2 09:03
谢谢,竟然忘记这个了····
一个地址不是占4个字节吗?
页:
[1]