【发布时间】:2010-09-03 19:38:59
【问题描述】:
以下是 2 个程序
第一
#include<stdio.h>
void main()
{
int a[5]={1,2,3,4,5};
int *p;
p=&a;
printf("%u %u",p,p+1);
}
第二
#include<stdio.h>
void main()
{
int a[5]={1,2,3,4,5};
printf("%u %u",&a,&a+1);
}
现在,在这两个程序中..我在第一个代码中使用 p 打印了 &a 的值,在第二个代码中直接打印了..
为什么结果不同?
我得到的答案是。
for first 3219048884 3219048888
for second 3219048884 3219048904
【问题讨论】:
-
您能用编辑器中的代码按钮格式化您的代码行吗?让人们更容易提供帮助。
-
你得到了什么结果?
-
你看到了什么结果?
-
其他人在这里指出了问题。我要补充一点:用
%u打印指针是个坏消息。使用%p。此外,出于调试目的以外的任何原因打印指针都没有任何意义。 -
不要使用
void main();使用int main()或int main(void)或 ...