免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6281 | 回复: 6
打印 上一主题 下一主题

指针变量使用之后要赋值为NULL吗? [复制链接]

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-26 12:58 |只看该作者 |倒序浏览

  1. #include "stdio.h"
  2. int fun1(char *str)
  3. {

  4.    strcpy(str,"abc");
  5. }

  6. int main(int argc, char *argv[])
  7. {
  8.          char strP[8]={0};
  9.          fun1(strP);
  10.          printf("%s",strP);
  11. }
复制代码
如果strP被多个函数接收数据参数调用的话,每次调用之后,是否都要strP[0]=0清空,不知道大家平时是如何处理?

论坛徽章:
0
2 [报告]
发表于 2012-03-26 13:13 |只看该作者
学得真混乱

论坛徽章:
0
3 [报告]
发表于 2012-03-26 13:22 |只看该作者
strP是个数组, 不是指针, 不能赋值

数组使用完后是否清空要看怎么用

指针使用完后是否赋空各有各的说法, 一般赋空

论坛徽章:
0
4 [报告]
发表于 2012-03-26 13:45 |只看该作者
lz有些混乱。
指针变量使用完以后赋值为NULL是一种习惯,为防止误操作,但并不强制要求。
好,关于指针变量到此为止。


lz给的代码,跟上面说的完全不挨着。
strP代表数组的地址,它并不是一个指针变量,不能被赋值。strP[0]=0是给这个数组的第一个成员赋值。

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
5 [报告]
发表于 2012-03-26 14:02 |只看该作者
真的是思想混乱了;得调整调整

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
6 [报告]
发表于 2012-03-26 14:03 |只看该作者
还是睡会比较好,让大脑清晰清晰;

论坛徽章:
0
7 [报告]
发表于 2012-03-26 16:32 |只看该作者
懒蜗牛Gentoo 发表于 2012-03-26 13:45
lz有些混乱。
指针变量使用完以后赋值为NULL是一种习惯,为防止误操作,但并不强制要求。
好,关于指针变 ...



也没什么大错误, 数组可以当作指针来操作。
lz这里只是作为局部变量的栈内数组, 程序本身基本可以运行, 但有func1()定义成int却无返回值之类的小错误, 编译会有问题。
指针一般清空设置成NULL好,其它地方好判断是否有效, 这样代码比较安全可靠。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP