指针总结

地址

  1. 地址的表示:&x

    x必须是一个确切的变量,不能是表达式

  2. 地址的转义字符:%p

  3. 地址的大小取决于系统,32位系统中地址和int类型一样大,64位系统中地址更大

  4. 关于数组a[N],&a = &a[0] = a

指针

  1. 指针的含义:专门用来保存地址的变量

​ p是i的指针,意思是,p这个变量的值为i的地址,也就是&i

  1. 定义方式:int *p = &i; 或 int* p = &i;(也就是说星号在左在右是等价的)

  2. 访问指针指向的值:*p, *p是一个整体,为整型

指针的应用:

  1. 需要返回多值(传入的参数需保存结果)
  2. 利用函数的返回值返回状态,指针返回结果

关于const

  1. 常量指针(int *const p)

    表示该指针指向唯一变量

    数组名所代表的指针相当于int *const a;

  2. 所指、只读指针(const int *p, int const *p)

    不能通过指针来修改其所指向的值

  3. 数组

    const int a[N] = {...}表示数组a的每个元素都为const int,不可修改

关于运算

指针++,加的是sizeof(其指向的类型)

指针的差也同理,两个相同类型的指针的差表示这两个地址之间有多少个这样的类型

posted @ 2021-11-21 16:13  tsrigo  阅读(25)  评论(0编辑  收藏  举报