1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言学指针变量 C语言指针变量学习五

c语言学指针变量 C语言指针变量学习五

时间:2018-06-14 13:23:43

相关推荐

c语言学指针变量 C语言指针变量学习五

//下面的程序演示了指针没有被人为手动分配存储空间的错误

#include

int main()

{

int * p;

int i = 5;

*p = i;

printf("*p=%d\n", *p);

return 0;

}

指针变量一开始没有在程序中控制去分配内存单元,会导致,编译器自动分配一个临时的内存单元给p,

这个内存单元是不被控制的,当执行到*p = i;的时候,这个临时的内存单元中的值被改成了5,这是有很大

风险的,这个零时的内存单元中的值有可能是另外一个很重要的程序要使用,结果让你给改了,你还不知道

你改了什么地方的值。

VC6.0下编译这个程序会有警告,执行后会卡死。现在明白了吧,自己写的程序似乎编译没问题,但运行卡死了,

大多数情况下,这个C程序可能写的的很大问题。

编译器自动分配给变量的零时值称之为垃圾值,如果给一个指针变量一个垃圾值,不再给指针变量重新赋予新地址,

很可能就变成, 胡乱的指向不受控制的内存单元,不受控制改掉了内存单元中的值,写程序的人还没察觉到,

这是极其危险的。

//下面的程序演示了*q相当与整型变量,而p是整型指针变量,整型指针变量赋给整型变量

#include

int main()

{

int i = 5;

int * p;

int * q;

p = &i;

*q = p;

printf("*q=%d\n", *q);

return 0;

}编译时后程序会报错covert from int * to int

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。