c语言指针的问题

时间:2019-08-21
本文章向大家介绍c语言指针的问题,主要包括c语言指针的问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

C语言中指针的问题:
C语言中使用指针的时候是默认初始化指向一个不能被写入数据的地址。
    int* a;
    *a=3;
    printf("指针a的值是:%d",a);
    printf("指针a指向的值是:%d",*a);
这样编译不会出错但是运行就无法对a指向的内存赋值,运行会出错。所
以应该改为
    int* a;
    int b=3;
    a=&b;
    printf("指针a的值是:%d\n",a);
    printf("指针a指向的值是:%d\n",*a);
一般我们在使用指针的时候为了不出现“野”指针,我们会给指针初始化一
个值,如果实在不知道指针应该指向何处我们会先将指针指向NULL,那么
指向NULL的指针又有什么特性呢:
int* a=NULL;
    //int b=3;
    *a=3;
    printf("指针a的值是:%d\n",a);
    printf("指针a指向的值是:%d\n",*a);
编译也是不会出错,但是运行就会出现问题,修改为:
int* a=NULL;
    int b=3;
    a=&b;
    printf("指针a的值是:%d\n",a);
    printf("指针a指向的值是:%d\n",*a);
这样就没问题了,我们会发现指向NULL和默认指向没啥区别啊,为啥要这
么指向呢?NULL文明默认指向就野蛮了?应该是在编译器中别人默认了指
向,NULL确实文明。
总结:指针指向NULL或者默认地址的时候不能往里面写数据,必需指向一
个地址了再向地址中写数据。

原文地址:https://www.cnblogs.com/xxiaoufo/p/11387820.html