燕子你写char* s="...";printf(s,...);故意搞乱代码么?
----------------解决方案--------------------------------------------------------
因为直接写的话GCC会有警告
[color=white]
----------------解决方案--------------------------------------------------------
加个强制类型转换就没警告了嘛……
#include <stdio.h>
int main()
{
int a[4];
int m=(int)((&a)+1), n=(int)((a)+1);
printf("%d %d %d\n", (int)((&a)+1), (int)((a)+1), m-n);
return 0;
}
[[it] 本帖最后由 StarWing83 于 2008-6-11 02:14 编辑 [/it]]
----------------解决方案--------------------------------------------------------
或者使用一个非标准的格式控制符,%p,专门用来显示指针的……
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
[bo][un]StarWing83[/un] 在 2008-6-10 23:40 的发言:[/bo]
燕子你写char* s="...";printf(s,...);故意搞乱代码么?
燕子你写char* s="...";printf(s,...);故意搞乱代码么?
因为直接写的话GCC会有警告
[color=white]
----------------解决方案--------------------------------------------------------
加个强制类型转换就没警告了嘛……
#include <stdio.h>
int main()
{
int a[4];
int m=(int)((&a)+1), n=(int)((a)+1);
printf("%d %d %d\n", (int)((&a)+1), (int)((a)+1), m-n);
return 0;
}
[[it] 本帖最后由 StarWing83 于 2008-6-11 02:14 编辑 [/it]]
----------------解决方案--------------------------------------------------------
或者使用一个非标准的格式控制符,%p,专门用来显示指针的……
----------------解决方案--------------------------------------------------------