C语言指针操作技巧探讨.pdfVIP

  • 3
  • 0
  • 约7.83千字
  • 约 2页
  • 2017-08-26 发布于河南
  • 举报
H;盛卜 中lq高新技术企业 C语言指针操作技巧探讨 ◆文,彭程杨春生 瞒要】 指针增加了我们控制程序的灵活性.但是指针使用不当就会出现野指针,危害接个程序的运行. 所以在程序中使用指针时应十分小心,养成良好的编码习惯,避免出现野指针. 陕键训】C语言指针技巧野指针 1.指针概述 while(+ip-O) C语言中.声明一个变量即表示在计算机中为该变量开辟一块 { 内存空问,变量的值即该内存中所保存的值,可以使用变量名对该 (‘ip)-·: 内存的内容进行访问或修改。或者通过先求出该变量所占内存的地 printf(”%d、n”,+ip); 址.然后宜接对该内存进行访问或修改. } 指针是一个变量,其值为所指向变量的内存地址。指针变量的 l 声明为: J 类型标识符+标识符: 在这个程序我们可以看到,在没有将变量i的内存赋值给指针 其中缕型标识符”表示该指针变量所指向变量的类型,标识 ip时.程序仍然能保证不出错运行.由于NULL指针易于检查判断. 符是该指针变爨的名字。如: 这里便将困难的野指针判断转化为简单的NULL指针判断.这样便 inti=10; 能有效地避免使用束初始化的野指睾f1。 2蹦: 2.2.2指针指向的内存已经被释放 int’P 此时.P即为一个指向int类型的指针,其值为~个整数.表示 C语言中使用malloc函数动态分配内存时,如果分配成功.则返 变量i所占内存的地址,而+p即为该内存所保留的值,此时为lO.回一个指向所分配的内存酋地址的指针.失败则返趔一个NUIL指 该例中,运算符&执行取地址操作,即&i表示变量i的地址。此时 针。所以在使用动态分配的内存前。需要将malloc函数的返回指针与 可以通过指针变量P对变量i的值进行访问或修改,如: NULL指针进行比较以确定是否分配内存成功.使片j指针进行动态 (+p)=(.p)+5; 内存分配操作时,当指针所指向内存被释放(即free)后,指针变麓本 执行该语句后,变曩i的值变为15. 身并没有被删除掉。如果没有及时地将指针簧为NIⅡ_L指针,在后面 与一‘般变量一样.对于外部或静态指针变量若在定义中来初始 的程序中很有可能错误地将该指针当作合法指引‘使用。示例程序如 化。指针变量将被自动初始化为NULL。印空指针. 下: 2.野指针 void Test(void) 2.1野指针出现的原因及后果 { 野指针即没有保存一个当时合法存在的变壁地址的指针. constintlen醇h=10; MIII指针很容易通过if语句进行判断以避免非法的间接访问,但 ,mt’ip=(int’)malloc(sizeof(int)+length), 是野指针却没有简单的方法可以判断.访问野指针将会导致错误的 if(ip!=NULL) 程序结果.其至使程序崩溃.所以在程序编码时应避免野指针以保 { 证程序的正常运行.下面从四个方面说明了野指针产生的原因,并 ,’…do with

文档评论(0)

1亿VIP精品文档

相关文档