eger类型是实现定义的——并且不能保证将指针转换为long不会丢失信息%p“专门用于打印指针值(以实现定义的方式),使用其他一些method.C90隐式声明的函数没有多大意义。C99放弃了该规则,并将调用没有可见声明的函数视为违反约束,需要进行诊断。(g

eger类型是实现定义的——并且不能保证将指针转换为long不会丢失信息%p“专门用于打印指针值(以实现定义的方式),使用其他一些method.C90隐式声明的函数没有多大意义。C99放弃了该规则,并将调用没有可见声明的函数视为违反约束,需要进行诊断。(g,c,pointers,floating-point,printf,C,Pointers,Floating Point,Printf,eger类型是实现定义的——并且不能保证将指针转换为long不会丢失信息%p“专门用于打印指针值(以实现定义的方式),使用其他一些method.C90隐式声明的函数没有多大意义。C99放弃了该规则,并将调用没有可见声明的函数视为违反约束,需要进行诊断。(gcc的警告满足了这个要求。)我正在使用这个教程:@Stella:谢谢你的链接。正如我所说,作者对C有一些错误的想法。我还没有读完整的内容,但是void main()足以建议避免使用它。它指的是Kernighan&Ritchie的C编程语言;你在


eger类型是实现定义的——并且不能保证将指针转换为
long
不会丢失信息<代码>%p“专门用于打印指针值(以实现定义的方式),使用其他一些method.C90隐式声明的函数没有多大意义。C99放弃了该规则,并将调用没有可见声明的函数视为违反约束,需要进行诊断。(gcc的警告满足了这个要求。)我正在使用这个教程:@Stella:谢谢你的链接。正如我所说,作者对C有一些错误的想法。我还没有读完整的内容,但是
void main()
足以建议避免使用它。它指的是Kernighan&Ritchie的C编程语言;你在那本书的任何地方都找不到
void main
。另见问题11.12a至11.15。(这可能是唯一严重的错误,但我不敢打赌。)@KeithThompson:既然我们在这里,你能推荐一个好的C教程吗?@Grodriguez:Kernighan&Ritchie,《C编程语言》,第二版,是经典之作——尽管它需要一些编程经验。课程的第18部分有一些很好的链接。我专门寻找教程(我正在为实习生编制一份有用的资源列表),所以K&R并不是我真正想要的。但是comp.lang.c常见问题解答的第18节绝对有帮助,谢谢!
void main()
{
float x;
    x=6.5;
    printf("Value of x is %f, address of x %ld\n", x, &x);
}
printf("Value of x is %f, address of x %ld\n", (double)x, (void *)&x);
#include <stdio.h>
int main(void)
{
    float x = 6.5;
    printf("Value of x is %f, address of x %p\n", x, (void *) &x);
}
#include <stdio.h>
int main(void)
{
  float x;
  x=6.5;
  printf("Value of x is %f, address of x %p\n", x, (void *) &x);
  return 0;
}
void main()
{
    float x;
    x=6.5;
    printf("Value of x is %f, address of x %ld\n", x, &x);
}
#include <stdio.h>
int main(void)
{
    float x;
    x = 6.5;
    printf("Value of x is %f, address of x %p\n", x, (void*)&x);
}