C语言的程序片段:

 

p =0;

printf(
"%d\n%d\n", p, p+1);

结果会是什么呢?

0

呵呵,上当了吧,此题是无解的,因为我没说p是什么东西。下面我告诉你p是什么:

 

int (*p)[1024];
p
=0;

printf(
"%d\n%d\n", p, p+1);

 

 

结果是:

0

4096

这个结果对么?

不一定。还得看它的运行平台。上面的结果是32位Intel平台的,64位的呢?单片机呢?DSP呢?

欢迎有条件的朋友试一试。

最后来个完整的:

 

#include <stdio.h>

int main()
{
int (*p)[1024];
p
=0;
printf(
"%d\n%d\n", p, p+1);
printf(
"%d\n%d\n", (int)p, (int)p+1);
printf(
"%d\n%d\n", (int)p, (int)(p+1));

return0;
}

 

 

 结果是:

0
4096
0
1
0
4096

Posted on 2010-03-31 00:23  Soli  阅读(1164)  评论(4)    收藏  举报