美文网首页
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——指针、数组和结构

    指针 指针是左结合的。int p;(指向整型的指针)。char ** p;——>(char)*p,指向字符串指针的...

  • 01_C++读书笔记

    入门: 数据类型: 数组: 字符串: 结构体: 指针: 循环: if:

  • ndk-基础知识

    数组和指针,数组指针,指针数组 结构体 内存对齐 内存对齐 结构体大小 S5DUD10BN083MHEJEX7TP...

  • 学习笔记3(指针运算,函数参数与指针,数组指针,二级指针)

    一、指针运算 二、数组与指针 三、指针和函数参数 java中: C/C++中: 四、指针数组 五、 二级指针 六、...

  • 三.复合类型

    C++中的复合类型主要有三种:数组,指针,和结构。 数组的索引是从0开始的,所以months[0]是指的数组mon...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • Go核心语言编程 - 复合数据类型(3)

    Go对应的复合数据类型有数组,字典,指针,切片,通道,结构和结构,他们字面类型如下: • 指针 • 数组• 数组初...

  • 数据结构--链表

    面试C++常考的问题:链表和数组有什么区别呢? 1、链表是链式存储结构,数组是顺序存储结构。2、链表通过指针连接元...

  • C语言21 指针数组与数组指针

    C语言21 指针数组与数组指针 指针数组的定义 指针数组的赋值 结构体指针数组 分析下面的代码 数组指针的定义 数...

  • C语言的指针与数组(进阶篇之一)

    一、一维数组与指针 (1).数组指针在C语言中,数组的首地址称为数组指针。而C++规定,数组的首地址可用数组名a表...

网友评论

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

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