c语言编译错误,帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/05/14 16:13:05
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p;
p=37814108;
printf("%d",*p);
system("PAUSE");
return 0;
}
错误:
assignment to `int *' from `int' lacks a cast

请问这是怎么回事啊

声明了*p 就是说p为指针变量,那么它只能用来存放指向其他数据的地址,不能够赋给它具体的数值

所以错误了

改成*p=37814108表示在指针变量p所指向的空间里面存放数据37814108

这样就不会有错误了

如果按照你的p=37814108的意识就需要把int *p;和printf("%d",*p); 改成int p;
和printf("%d",p); 了

明白了吗?

#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p;
p=new int;
p=37814108;
printf("%d",*p);
system("PAUSE");
return 0;
}

p=37814108错了,指针不能直接赋值。改成*p=37814108;

p为地址,*p才是变量

*p才是变量,否则是错误的

改为:
p=new int;
*p=37814108;
printf("%d",*p);
delete p;