C语言Plus 2020-04-30

小知识速记 | 指针变量使用注意事项_C语言

C语言是一种很灵活的语言,在程序调试过程中常常会遇到一些难解决的问题,一般语法错误计算机能检测出来,而逻辑错误计算机则检测不出来。这给教师的教学带来比较多的麻烦,也大大削减了学生学习的自信心。所以我把易出错的知识点进行一一列举。


同学:老师,这个什么问题,运行之后没有输出,也不报错!

  int *p = NULL;  *p = 6;  printf("%d", *p);

老师:这个没有语法错误,但是有逻辑错误,按道理来说,运行的时候编译器要报错的!

p指向的是NULL,此时没有给指针分配有效的内存空间,所以赋值是失败的,并且也是非法的。要想使用必须先给p一个有效的空间,你可以让他指向一个变量,或者动态分配一个空间。

  int temp;  int *p = &temp;  *p = 6;  printf("%d", *p);  //或者,动态申请的内存一定要记得释放哦   int *p = (int*)malloc(sizeof(int));  *p = 6;  printf("%d", *p);  free(p);  p = NULL;