C语言学习笔记之指针——待更新

指针

概念

  • 指针:地址。
  • 指针变量:存放指针的变量。
    int * p
    * int * 可看作类型,p为变量名称。
    * 定义一个指针变量p,p存放的是地址,可指向存放int类型的变量。
  • 取地址符 &
    int i = 10;
    int * p = &i;
    
    • 普通变量 i 存放了 int 类型的数据,利用取地址符 & 可将 i 的地址赋值给指针变量 p,这时候可以说 p 指向 i
  • 取消引用运算符 *引自《C语言入门经典(第四版》):
    int i = 100;
    int * p = &i;
    int j = *p;
    
    • p 指向 i ,利用 *p 可以获得 p 指向的变量 i 的值,即 *p == 100 ,因此最终 j == 100
    • * 用法总结
      • 乘法
      • 定义指针变量
      • 获取指针变量指向的数据

指针与数组

待更新

指针变量的运算

  • 指针变量存放的地址本质上还是整数,理论上可以整数的运算都是用,但对指针变量进行乘除操作是没有意义的。当指针指向的数据在内存中是连续的时候(如数组),地址是连续的指针,可进行加减运算。
    int a[10];
    int * p1 = &a[3];
    int * p2 = p1 + 1int * p3 = p1 - 1
    • 数组 a 可存放10个 int 类型的数据,假设 int 类型为4个字节,那么 a 在内存中占 4*10 个字节。
    • 因此,p1 指向第4个元素,p1 中存放的是第17个字节的地址。
    • p2 = p1 + 1 p2 中存放的并不是第18个字节的地址,而是下一个元素,即第5个元素的首地址,亦即第21个字节的地址。
    • 同理可推算出 p3

指针与字符串

待更新

你可能感兴趣的:(指针,c语言)