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
请问这是怎么回事啊
#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;