计算结果怎么跟打印结果不一样
#include <stdio.h>main()
{
static int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
char *PF;
PF="%d,%d,%d,%d,%d\n";
printf(PF,a,*a,a[0],&a[0],&a[0][0]);
printf(PF,a+1,*(a+1),a[1],&a[1],&a[1][0]);
printf(PF,a+2,*(a+2),a[2],&a[2],&a[2][0]);
printf("%d,%d\n",a[1]+1,*(a+1)+1);
printf("%d,%d\n",*(a[1]+1),*(*(a+1)+1));
}
计算结果:0,0,0,0,0
4,4,4,4,4
8,8,8,8,8
5,5
5,5
打印结果:4202504,4202504,4202504,4202504,4202504
4202520,4202520,4202520,4202520,4202520
4202536,4202536,4202536,4202536,4202536
4202524,4202524
5,5
为什么不一样
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
PF="%d,%d,%d,%d,%d\n";
这个什么意思~~~看不懂...
----------------解决方案--------------------------------------------------------
为什么要用指针指向字符串,用#define来定义"%d,%d,%d,%d,%d\n"不是更好么?
----------------解决方案--------------------------------------------------------
[bo][un]yjcf[/un] 在 2008-6-29 11:31 的发言:[/bo]
为什么要用指针指向字符串,用#define来定义"%d,%d,%d,%d,%d\n"不是更好么?
为什么要用指针指向字符串,用#define来定义"%d,%d,%d,%d,%d\n"不是更好么?
这个没有所谓什么更不更好吧
----------------解决方案--------------------------------------------------------
[bo][un]qGemini[/un] 在 2008-6-29 11:33 的发言:[/bo]
这个没有所谓什么更不更好吧
这个没有所谓什么更不更好吧
晕,你见过有这样定义引用吗??
----------------解决方案--------------------------------------------------------
………………汗,你还不如定义宏呢!
----------------解决方案--------------------------------------------------------
看看数组和指针的关系
----------------解决方案--------------------------------------------------------
[bo][un]yjcf[/un] 在 2008-6-29 11:57 的发言:[/bo]
晕,你见过有这样定义引用吗??
晕,你见过有这样定义引用吗??
有这样的定义,不过很少见!
----------------解决方案--------------------------------------------------------
楼主的程序涉及到逻辑地址和物理地址之间的转换,所以打印结果和你的分析不同!楼主分析的是逻辑上的地址,而输出则是物理地址。想详细了解,可以看看操作系统方面的书!
----------------解决方案--------------------------------------------------------