1215学习总结

指针

1.指针类型是一种特殊类型
    DataType *name;
    DataType* name;
    DataType * name;
    
    指针与普通变量的区别:
    指针: 存地址
    普通变量:存值
    指针只能保存与其相同类型的地址
2.初始化
    int *p = NULL;  //ok
    NULL表示空地址
    int a = 3;
    int *pa = &a;   //ok
    
    int *pb;
    pb = &a;    //ok        
    int *pc;
    *pc = &a;   //error
3.地址的访问
    *:间接访问运算符;
    *p
    空地址不能访问里面的值
4.可以把指针变量赋值给同类型指针
5.不同类型的指针大小
    64位机:8
    32位机:4
6.指针的类型和指针所指向的类型
    int *pa;
    double *pb;
    指针的类型:去掉变量名之后的部分
    指针所指向的类型:去掉指针变量名和其前面的*
7.指针与数组
    数组名是一个地址,
    数组元素的访问:
        int arr[5] = {1,2,3,4,5};
        int *p = arr;
    形式:
        arr[0];   arr[3];
        *(arr);   *(arr+3);
        *(pa);    *(pa+3);
        p[0];     p[3];
8.野指针
    没有初始化,或其指向的内存被释放,而指针没有被置空;
    危害:
        造成系统资源的浪费,容易造成未知的致命错误。
9.指针的地址运算
    指针的自增:指针向高地址方向移动
          自减:指针向低地址方向移动
          移动的字节数是指针所指向的类型的大小
    指针相加没有意义,指针相减表示两指针的距离
    指针加减一个常量,表示地址往高字节或低字节方向移动
    常量值*sizeof(对应数据类型)个字节
10.概念区分
    int buf[3]; //数组,大小为3,存放3个int型变量
    int *pb;    //指针,其类型为int*型
    int *arr[3];    //指针数组
    int (*pa)[3];   //数组指针,又称行指针

二级指针

DataType **PointorName;
int a = 10;
int *q = &a;
int **p = &*q;
**p == *q == a;
定义一个指针,或对地址进行操作时,一定要确定指针的指向

总结:

指针就是存储地址的单元;指针基本上跟数组名等同,理解起来有点难度,注意思维的转变,暂时我理解起来还没有什么问题,主要是对指针还不能熟练的运用,指针是C语言的灵魂,以后要注意对指针的锻炼。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,474评论 3 44
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,446评论 25 708
  • 北方有佳人。绝世而独立。 一顾倾人城。再顾倾人国。 宁不知倾城与倾国。佳人难再得。
    叶子很忙阅读 231评论 0 0
  • 当全职的二宝妈妈可以在老公在家时彻底睡个午觉,起床后的老公估计应该会见识到你的辛苦。这是家里来了个熊孩子——一...
    青雪绿云阅读 645评论 0 0
  • 2010年4月1号在职业技术学校聆听了一场精彩的家庭教育报告会。北京四中网校的王恒超老师生动的演讲,引发了我对于家...
    追梦笔记阅读 175评论 2 1