美文网首页
C++入门3——指针、数组和结构

C++入门3——指针、数组和结构

作者: hello2333 | 来源:发表于2017-03-12 14:47 被阅读0次

    指针

    • 指针是左结合的。int p;(指向整型的指针)。char ** p;——>(char)*p,指向字符串指针的指针
    • 零:可以被用作任意类型,浮点类型、指针等;当0作为一个指针文字量时,表示一个指针当时并没有指向任何对象。C中用一个宏NULL表示0指针,C++中多直接使用0
    • 指针的加减运算:依赖于指针指向的类型。对于int *p,p++会移动int的大小;double *p,p++会移动double的大小
    • const
      • char *const p;指向字符串的指针,这个指针为常量,不能再指向其他对象
      • char const* p;const char* p;指向常量字符串的指针,这个指针可以指向其他对象,但是指针所指向的字符串对象不能有所更改
    • 引用:引用是一个对象的另一个名字,引用的出现主要是为了函数的参数和返回值
      • 引用到底有什么作用???????

      • 引用与指针的区别:
        • 引用必须不能为NULL,但是指针可以为NULL;所以指针需要做NULL检查,但是指针不需要
        • 引用必须初始化,且引用指向一个对象后,就不能再指向其他对象
        • 引用的一个简单的实现就是常量指针
        • 址传递和引用传递看起来一样,为什么还要用引用传递?
          • 实际上"引用"可以做的任何事情"指针"也都能够做,为什么还要"引用"这东西? 答案是"用适当的工具做恰如其分的工作"。
          • 指针能够毫无约束地操作内存中的任何东西,尽管指针功能强大,但是非常危险。
          • 如果的确只需要借用一下某个对象的"别名",那么就用"引用",而不要用"指针",以免发生意外。
    • 指向void的指针:一个指向任何对象类型的指针都可以赋给类型为void*的变量。对void*做其他任何操作都会引起编译错误,要使用void*,就必须显示地转换到某个指向特定类型的指针。
    • struct
      • 数组是相同类型元素的一个聚集,结构体是各种元素的聚集
      • struct的定义大括号{ }结束时必须在括号后有分号
      • 结构体对象的大小并不是简单的其成员的大小之和,因为结构体对象具有对齐的性质

    相关文章

      网友评论

          本文标题:C++入门3——指针、数组和结构

          本文链接:https://www.haomeiwen.com/subject/iduggttx.html