C\C++指针(地址)学习总结(附内存分配方式)

本文是关于C/C++指针的全面学习总结,包括指针的基本定义、指针与函数、指针与数组的关系,以及new和delete操作。详细阐述了指针的递增、递减、常量指针、函数指针和指针数组的概念,并探讨了C++中内存的五种分配方式。
摘要由CSDN通过智能技术生成

    指针是C语言的特色和精髓,也是C\C++里面比较难于理解的、比较复杂的,只有全面理解掌握了它才算学会了C。它是大多数C程序的重要部分,在许多C++程序中也仍受到重用。虽然现在C++采用vector类型和迭代器,以尽量避免使用指针和数组,但指针的重要性仍不容忽略。

 

    近期对指针进行了全面学习,以下就做一个总结吧。

一、指针的基本定义:

    对象的“指针”即为对象的地址,用于指示对象的存储位置。指针所指的物理存储空间称为“指针所指对象”。

    对象可以通过地址访问,称为“指针访问”。运算符为“*”。

            例如:int a=0;  int *p=&a;  cout<<a<<*(&a)<<*p;  (对*p的操作相当于对a的操作

    对象的存放地址是由系统分配的,C/C++代码只能查看而不能指定对象的地址。

    “指针变量”是指存放地址值的变量,(例:在32位机上,它有4个字节,用8位十六进制表示如0x8FC6FFF4)。

                            定义形式为:  类型 *标识符;

    (注:有时没有严格区分指针和指针变量。)

    int *p=NULL;   表示指针变量不指向任何内存单元,或表示为 p=0;

    void *p;   void指针变量能够存放任意内存地址,但解释时需强制类型转换。用于能支持多种数据类型的数据操作。

    指针的运算有:递增、递减和相减。指针偏移是以所指对象类型所占内存大小为单位的。不允许相加。

 

    指针与const: (主要弄清楚const约束在什么地方)

         指向常量的指针: const 类型 *指针; 或   类型 const *指针;  能修改指针p,但不能修改指针所指对象*p。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值