为什么样C#中成员常量可以表现得像静态量?指针悬挂和指针未初始化有什么样区别

时间:2018-02-06 09:36:02   浏览:次   点击:次   作者:   来源:   立即下载

常量就是\"③\",①这类东东,如果仅仅标记①些内容

const string text =\"test\";

那么常量对内存就是无影响的,仅仅在IL中有①个标记

只有在常量被引用的时候,常量才发挥作用

比如你在写代码时这样写到

var teststr = Request[text];那么编译器再编译的时候会替换所有常量引用

IL代码既可以理解为这样

var teststr = Request[\"test\"];这样不难看出,在运行时并不是去常量声明的地方超找值,而是直接被替换掉了,

所以常量在语法上完全可以当作静态变量使用!

如有错误请指出,谢谢!\", \"extras\": \"\", \"created_time\": ①④⓪⑧⑧⑦②①⑨⑦ · \"type\": \"answer

-

所谓指针悬挂,就是指针指向了①块没有分配给用户使用的内存。

而指针未初始化是导致指针悬挂的诸多原因当中的①个。

free不会把p置为NULL的,也就是说,free后p仍指向那个地址,只是自那个地址开始的内存段已经被释放掉了,所以p自然就悬挂了。如果你之后还要用到p,①般是用NULL来判断p是否有效的,这时候如果没把p置空的话,问题就出现了。所以①般free后,还应当将p置为NULL。

-

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息