C++笔记--指针数组和结构

    1. 指针
      1. 类型为T*的变量能保存一个类型T对象的地址
        1. Char c=‘a’;Char * p=& c;//保存了c的地址
      1. 指针的操作一般都是间接的引用,就是相当于引用指针所指的对象。
      2. 0是一个特殊的东西。它可以被当做任意的整型,浮点类型,或者是指针,这些都是视情况而定的。0表示当时的一个指针没有指向任何对象。
    1. 数组
      1. 数组的大小必须是一个常量,如果想用变量来表示数组的大小,可以使用vector来表示,例如:vector<int> vi(i);//I表示一个变量,数组的大小可以变化
      2. 数组不会出现赋值操作的。例如:v4={'a','b','c'};//错误的,没有数组赋值
    2. 字符串数组
      1. 字符串总是以一个空字符‘\0’结束,所以总是比看到的大小+1
      2. Char *P=“abc”;//这个是合法的,char *P就是相当于一个字符串
        P[2]='A';//这个是错误的,给常量赋值不对
      3. Char P[]="ABC";
        P[2]='A';//这个是正确的。
      1. 在应用于指针的时候,==比较的是变量的地址值,而不是指针所指的值。
    1. 数组指针
      1. 数组的名字可以被用做到它的开始元素的指针
        1. Int  v[]={1,2,3,4};
          int *p=v;//这里p指向的是数组v的开始元素(隐式的转换,从int[]转换成了int*)
          int *p=&v[4];//指向最后元素之后的一个位置,实际上并没有什么用
    2. 常量--const
      1. 加上const的常量在声明的时候就必须赋值
      2. 对于const的常量,有些时候常量的值在编译的时候已知,就不用为它分配存储空间,有些就是在编译的时候值不知,就必须为它分配存储空间。
        const int c1=1;//不需要分配空间
        const int c2=2;//
        const int c3=my_f(3);//这个在编译时未知,所以要分配空间
        const int * p=&c2;//这个就要为c2分配空间了,因为在这里调用了c2的地址。
      1. 指针和常量
        1. Const  char *p=s;//这个是指向常量的指针,p[2]是不能修改的,但是p指针可以:p=pv;
          char *const p=s;//常量指针
          p[3]='g';//正确,指向的不是一个常量
          p=pv;//错误,这个指针是常量指针,指向不能修改
          const char *const p=s;//这个是一个constconst
        1. Const char*   和char  const*是一样的,都是指向一个常量的普通指针,如果从右到左读的话,能对理解很有帮助
          char *const p;//p是一个const指针到char
          const char * p;//p是一个指针指到const char
    1. 引用
      1. 一个引用就是某对象的另一个名字,而且在引用的时候必须进行初始化,extern可以表示该变量在别处进行了初始化
        1. Int &z=p;//z和p同名
    2. 指向void的指针
      1. 一个指向任何类型对象的指针都是可以赋值给void*的。
      2. Void*最重要的用途就是需要向函数传递一个指针,而又不能对对象的类型做出任何假设,它表示的就是一个空类型的指针对象。
    1. 结构
      1. 结构类型对象的大小未必是其成员对象大小之和。

     

     

     

     

    1. 忠告:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值