main()
{
int *f;
printf("%d\n",f);
getch();
}
显示
12803
main()
{
int *f;
printf("%d\n",f);
*f=9;
getch();
}
显示:
798
说明肯定是编译器的问题!
还有就是都显示了地址
说明系统已经给他分配了空间 所以系统不应该崩溃啊!
main()
{
int *f;
printf("%d\n",f);
getch();
}
显示
12803
main()
{
int *f;
printf("%d\n",f);
*f=9;
getch();
}
显示:
798
说明肯定是编译器的问题!
还有就是都显示了地址
说明系统已经给他分配了空间 所以系统不应该崩溃啊!
当然通不过
你是什么意思?
你写错了?:
struct ABC
{
int a;
};
int main()
{
struct ABC *a;
printf("%d\n", a->a);
return 0;
}
还是故意的?
要是写错了,我只能告诉你我的能编译!!!
是因为你没写:typedef
typedef struct {
int a;
}ABC;
int main()
{
ABC *a;
printf("%d\n", a->a);
getch();
return 0;
}
我的确编译通过了!
发誓!
感谢各位的热心帮助!
可能我当时没有把我的意思表示清楚吧!
我是想问当程序是
#include <stdio.h>
void tryit (int * a)
{
printf("%d",a);
}
void main()
{
int *a;
*a=3;
tryit(a);
}
时会运行出错,但我要改成:
#include <stdio.h>
void tryit (int * a)
{
printf("%d",a);
}
void main()
{
int a;
a=3;
tryit(&a);
}
就可以了.
为什么在用指针当参数时非得这样用呢?
[此贴子已经被作者于2006-8-25 10:24:07编辑过]
还是楼上争的问题。
1.指针必须先指向确定的地址才能用;
2.如果楼主想保留主函数的指针,可以这么改:
#include <stdio.h>
void tryit (int ** a)
{
printf("%d",*a);
}
void main()
{
int b,*a=&b;
*a=3;
tryit(&a);
}
函数的形参和实参地址不同。