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

指针

  • 指针是左结合的。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的定义大括号{ }结束时必须在括号后有分号
    • 结构体对象的大小并不是简单的其成员的大小之和,因为结构体对象具有对齐的性质
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 12,303评论 0 10
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 13,153评论 1 51
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 6,435评论 0 7
  • 一、字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 s...
    JaiUnChat阅读 5,585评论 0 7
  • 在初中时期,老师总会让我们去了解课外知识,多读中外名著。那时《三国演义》《水浒传》是我们男孩子心目中的书刊,有...
    星夜倾听阅读 2,784评论 0 0

友情链接更多精彩内容