C++指针薄弱知识点整理(3)

1.数组和指针的区别

1)定义:

   数组:数组是用于存储多个相同类型数据的集合.

   指针:指针是一个变量,存放指向的变量的在内存中的地址

2)赋值方式

   数组:逐个元素的赋值或者拷贝

   指针:指针可以相互赋值

3)表示范围

   数组:有效范围就是数组空间的范围,不能指向其他数组

   指针:可指向任意变量地址,但是不能随意访问,必须在变量有效范围内

4)sizeof()

   数组:

          占用存储空间:sizeof(数组);

          数组大小:sizeof(数组)/sizeof(数据类型)

指针:

        32位系统,sizeof(指针)全是4;

        64位系统:sizeof(指针)全是8

2.数组传参时会退化成指针

  将整个数组拷贝一份传入函数时,将数组名看做常量指针,传数组首元素的地址

3.void类型指针

  void* :空类型指针,只存储地址,丢失类型,故无法访问.要访问该值,必须类型转换,再间接引用指针;

            其他类型指针都可隐式自动转换为void类型指针,void类型指针如果要转换成其他类型指针,必须强制转换

           void*指针不允许算术运算

4.函数指针:指向函数的指针

       函数指针的定义:

假如函数为  int  abc(const void*a,const void*b);

函数指针可以定义为 int (*functionptr) (const void*,const void*);

                     赋值:functionptr = &abc;

                     调用函数(1)(*functionptr)(&x,&y);//x,y为int型变量

                                     (2)functionptr(&x,&y);也可以调用函数

  

  

  

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值