zoukankan      html  css  js  c++  java
  • 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个字节,固定的,与指针 的类型没关系。

      • 赋值

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

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

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

  • 相关阅读:
    面试题目
    MyEclipse 启动 tomcat时错误处理
    js 剪贴板操作
    PHP面试题
    MySQL 数据库 source 导入乱码
    php 不用通过表单也能创建HTTPpost请求
    一个css中zindex的用法
    最新黑链代码expression:隐藏链接代码
    测试网站访问速度的几个小方法
    优秀开源外贸网店程序一览
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/8954670.html
Copyright © 2011-2022 走看看