C语言中 零指针/类型指针 怎么使用?

来源:百度知道 编辑:UC知道 时间:2024/05/12 13:58:22
类型指针void*使用时为什么要进行强制类型转换?如何转换(怎么写)?
零指针有何作用?
如:#define NULL=0
int *p=NULL;

请比较下面两个程序`哪个好?为什么?
main()
{
int i=10;
int *p;
*p=i;
printf("%d",*p);
}
main()
{
int i=10,k;
int *p;
p=&k;
*p=i;
printf("%d",*p);
}

初出茅庐`请各位前辈耐心解答`谢谢!
强制转换的表达式怎么写?

void*类型指针表示此指针可以指向任何类型,定义时它没有类型,为空类型,所以必须强制性转换;
零指针的作用就是防止指针指向一个不确定的内存空间而引起错误,因为指针在定义完之后必须进行初始化,使其指向一个确定的内存空间,否则的话,它就是一个不确定的指针,容易引起错误!!

下面一个好,是正确的;但是上面那个有问题,因为p指针没有初始化,没有确定指向一个内存空间,是错误的,应该把*p=i; 改为p=&i;就好了

(要转换成的数据类型)要转换的变量,
例如(int)a;就是把a强制转换成int类型!!

zzk88说得不错,可以给分了