C语言问题,未给指针变量指定初始值真的有危险吗
这是《C程序设计》的原文:在VisualC++中编译时发出“警告”信息,提醒未给指针变量指定初始值(未指定其指向),虽然也能勉强运行,但这种方法是危险的。因为编译时给指针...
这是《C程序设计》的原文:在Visual C++中编译时发出“警告”信息,提醒未给指针变量指定初始值(未指定其指向),虽然也能勉强运行,但这种方法是危险的。因为编译时给指针变量a分配了在存储单元,变量a的地址(即&a)已指定了,但a未被赋值,在a的存储单元中是一个不可预料的值。在执行scanf函数时,要求将一个字符串输入到a所指向的一段存储单元(即以a的值(地址)开始的一段内存单元)中。而a的值如今却是不可预料的,它可能指向内存中空白的(未用的)用户存储区中(这是好的情况),也有可能指向已存放指令或数据的有用内存段,这就会破坏了程序或有用数据,甚至破坏了系统,会造成严重的后果。应当绝对防止这种情况的出现。应当在定义指针变量后,及时指定其指向。
展开
展开全部
初学者最好养成给指针变量赋初值的习惯
至于原因嘛,就是上述文段:如果你不给它赋初值开始他就会乱指,当你对它操作时极有可能改动到他指向的内容,要是他指向已经被使用的地址,悲剧很可能就发生了;
当然了,如果你每次在使用到指针变量前都注意到它的指向,是可以避免出错的,但很多时候难免会大意,就好比掉了分号一样,任何人都知道是错的,但很多时候就是发生了
学习计算机编程,就是这样,有时候会因为一点点的疏忽而导致程序运行出错,甚至直接不能运行,所以建议养成良好的习惯
至于原因嘛,就是上述文段:如果你不给它赋初值开始他就会乱指,当你对它操作时极有可能改动到他指向的内容,要是他指向已经被使用的地址,悲剧很可能就发生了;
当然了,如果你每次在使用到指针变量前都注意到它的指向,是可以避免出错的,但很多时候难免会大意,就好比掉了分号一样,任何人都知道是错的,但很多时候就是发生了
学习计算机编程,就是这样,有时候会因为一点点的疏忽而导致程序运行出错,甚至直接不能运行,所以建议养成良好的习惯
展开全部
未初始化的指针,它指向的内存的值是不可预知的,很多时候程序崩溃都因为指针未被初始化或指向了错误的地方,因此通常需要给指针初始化为0或NULL
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有危险,但没那么夸张,基本不会犯错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是
指针刚定义时是没有任何指向的,所以定义指针后要对指针赋初值
例如int
*p=null;//空指针
或int
a=5;
int
*p=a;//定义指针变量a的指针
希望回答对你有帮助!谢谢
【原创答人】
指针刚定义时是没有任何指向的,所以定义指针后要对指针赋初值
例如int
*p=null;//空指针
或int
a=5;
int
*p=a;//定义指针变量a的指针
希望回答对你有帮助!谢谢
【原创答人】
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈,打个通俗的比喻:“寡妇门前是否多”。空指针,尤如独守空房的“寡妇”。很容易被不法分子,乘虚而入。任何有非份之想的人,都能进入。兄弟,你说危险不?????
所以"寡妇"最好不要独守空房,还是嫁个人比较安全!!!
所以"寡妇"最好不要独守空房,还是嫁个人比较安全!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询