当前位置:   article > 正文

Linux下指针NULL_0x0_指针为0x0

指针为0x0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. static int*p;
  5. int main()
  6. {
  7. printf("static no initial:\n");
  8. if(p==0)printf("p==0\n");
  9. if(p>0)printf("%s","p>0\n");
  10. if(p==NULL)printf("%s","p==NULL\n");
  11. printf("set p=0x0:\n");
  12. p=0x0;
  13. if(p==0)printf("%s","0x0==0\n");
  14. if(p>0)printf("%s","0x0>0\n");
  15. if(p==NULL)printf("%s","0x0==NULL\n");
  16. // 指针无指向,段错误
  17. // printf("memset:\n");
  18. // memset(p,0,sizeof(int*));
  19. // if(p==0)printf("%s","memset==0\n");
  20. // if(p>0)printf("%s","memset>0\n");
  21. // if(p==NULL)printf("%s","memset==NULL\n");
  22. // 指针无指向,段错误
  23. // printf("bzero:\n");
  24. // bzero(p,sizeof(p));
  25. // if(p==0)printf("%s","bzero==0\n");
  26. // if(p>0)printf("%s","bzero>0\n");
  27. // if(p==NULL)printf("%s","bzero==NULL\n");
  28. p=(int*)malloc(sizeof(int));
  29. printf("\nmemset:\n");
  30. memset(p,0,sizeof(int*));
  31. if(p==0)printf("%s","memset==0\n");
  32. if(p>0)printf("%s","memset>0\n");
  33. if(p==NULL)printf("%s","memset==NULL\n");
  34. if(0==*p)printf("*p==0\n");
  35. else if(*p>0)printf("*p>0\n");
  36. printf("\nbzero:\n");
  37. bzero(p,sizeof(p));
  38. if(p==0)printf("%s","bzero==0\n");
  39. if(p>0)printf("%s","bzero>0\n");
  40. if(p==NULL)printf("%s","bzero==NULL\n");
  41. if(0==*p)printf("*p==0\n");
  42. else if(*p>0)printf("*p>0\n");
  43. free(p);//与malloc成对使用
  44. p=NULL;
  45. return 0;
  46. }

  1. //结果
  2. static no initial:
  3. p==0
  4. p==NULL
  5. set p=0x0:
  6. 0x0==0
  7. 0x0==NULL
  8. memset:
  9. memset>0
  10. *p==0
  11. bzero:
  12. bzero>0
  13. *p==0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/483159
推荐阅读
相关标签
  

闽ICP备14008679号