c语言给无向指针赋值对吗?

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:01:08
看程序:
main(){
int *p;
*p=20;
printf("%d",*p);
}
这样做对吗?

不行,没有确定指针指向的内存单元,必须得定义一个变量,让指针指向它再赋值

你的程序没Error,只会有个warning,说你的p没有初始化。只要你不在给p赋值前对它进行读取,那就没事。其实出不出那个warning还有看你用什么编译器,呵呵

不可以..

你没有指向...

怎能给它赋值.

*P那

不可以,要分配空间,
就像你要在房间里装家具,但是你没有告诉在哪个房间,
系统会疯的

所谓野指针就是说的这个
程序有可能由此而“飞掉”

用int 还是char定义指针都可以,这不是问题所在,关键是定义好后要初始化,也就是大家讲的要给指针赋内存空间,当然也不能像你那样int *p=20,这样是直接把地址20赋予了指针p,如果地址20是属于系统内存区的话,你这样做是绝对会出问题的,轻则程序报内存错,重则系统崩溃。