• C语言基本语法——指针


      1、什么是指针

      2、指针用于参数

      3、指针用于返回值

      4、指针加减操作

      5、指针与数组区别

    1、什么是指针

      • 内存被分为字节,每个字节有唯一的地址,指针指的就是内存地址。

      • 保存指针的变量,就叫指针变量。(保存地址)

      • 声明一个指针变量

    int i = 0;

    int* p;//声明一个指针变量 int* 指针类型

    int * p; int* p; int *p;

      • 每个指针变量能指向一种特定类型的对象(地址,内存区 域)。

      • 指针是引用数据类型,因为本身没有保存数据,只是保存了 数据的地址,间接的找到内存中的数据。

     

    2、指针用于参数

      • 值传递

    void swap(int a, int b) {

      int temp = a;
      a = b;
      b = temp;

    }

    int main() {
      int a = 5, b = 8;

      swap(a, b);

      printf(“%d,%d”, a, b);

    }

      • 地址传递

    void swap(int *a, int *b) {

      int temp = *a;
      *a = *b;
      *b = temp;

    }

    int main() {
      int a = 5, b = 8;

      swap(&a, &b);

      printf(“%d,%d”, a, b);

    }

    3、指针用于返回值

      • 指针也可以做为返回值

      • 不要返回自动变量的地址,因为局部变量的生命周期,当函 数结束,局部变量会被自动清除(释放)。解决方案:延长 生命周期。

    4、指针加减操作

      • 指针支持加整数、减整数、指针的比较和相减,但运算的单位由指针的类型决定。

        int类型指针+1 = 地址+4

        char类型指针+1 = 地址+1

      

    5、指针与数组区别

      • 占用内存空间

    -数组占用空间 = 数组元素占用的空间*长度

    -指针占用空间 = 在64位系统下,8个字节,固定的,与指针 的类型没关系。

      • 赋值

    -数组名是常量,是不可以修改其值

    -指针是变量,可以多次赋值

    -对指针的赋值,本质上是指针指向的改变

  • 相关阅读:
    无线渗透开启WPS功能的路由器
    写代码怎能不会这些Linux命令?
    分布式服务框架 Zookeeper -- 管理分布式环境中的数据
    每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
    Innodb 中的事务隔离级别和锁的关系
    线上操作与线上问题排查实战
    MySQL 四种事务隔离级的说明
    一次由于 MTU 设置不当导致的网络访问超时
    SYN 和 RTO
    The story of one latency spike
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/8954670.html
Copyright © 2020-2023  润新知