C++ Primer Plus学习:第四章 复合类型(4)

本文详细介绍了C++中指针的基本概念及其运算规则,包括指针的声明、赋值、解除引用以及指针算术等内容。同时,还探讨了数组名与指针之间的联系,并对比了静态联编与动态联编数组的区别。
指针
  指针变量+1,相当于增加指向的类型的字节数
  arrayname[i] = *(arrayname+i)
  sizeof取到的值为数组的长度,sizeof对指针取到的值为指针的长度
  小结:指针
    声明指针
      typeName * poiterName
      poiterName为指针,typeName *为指针typeName的指针
    给指针赋值
      将内存地址赋给指针
        可对变量名应用&来获得被命名的内存的地址
        new返回未命名的内存地址
      double* pn; char* pa; double bubble = 3.2; pn = &bubble; pa=new char;
    解除指针引用
      对指针解除引用意味着获得指针指向的值
      cout<<*pn;//打印bubble的值
    区分指针和指针所指向的值
      若pt是指向int的指针,则*pt不是指向int的指针,而是完全等同于一个Int类型的变量
      int * pt = new int;//分配地址指向指针pt *pt = 5;//存储值5在此地址
    数组名
      C++将数组名视为数组的第一个元素的地址
      int tacos[10];//tocas等同于&tacos[0]
      sizeof作用于数组名时,返回数组的长度
    指针算术
      +1的结果等于原来的地址值 上加上指向对象占用的字节数
      -1的结果是两个指针的差
    数组的动态联编和静态联编
      全用数组声明来创建数组时,将采用静态联编,即数组的长度在编译时设置
        int tacos[10];
        长度为10
      使用new[]操作符创建数组时,将采用动态联编(动态数组),即将在运行时为数组分配空间,其长度也将在运行时设置
        int size; cin>>size; int* pz = new int [size]; ... delete[] pz;
        动态分配大小
        最后要删除指针
        new新建,delete删除
    数组表示法和指针表示法
      使用方括号数组表示等同于对指针解除引用
        tacos[0]等同于*tacos等同于tacos地址处的值
        tacos[3]等同于*(tacos+3)等同于tacos+3地址处的值
      int* pt = new int[10]; *pt = 5; pt[0] = 6; pt[9] = 44; int coats[10]; *(coast + 4) = 12;
Note
  C++将数组名解释为数组第一个元素的地址。
    wages=&wages[0]=address of first element of array

  指针变量加1后,其增加的值等于指向的类型占用的字节数。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值