zoukankan      html  css  js  c++  java
  • 指针和数组

    指针和数组

    1. 指针和一维数组

    1.1>一维数组名

    ​ 一维数组名是一个指针常量,它存放的是一维数组的第一个元素的地址

       # include <stdio.h>
     
      int main(void)
      {
      int a[5]; //a是数组名 5是数组元素的个数 元素就是变量 a[0] -- a[4]
      // int a[3][4]; //3行4列 a[0][0]是第一个元素 a[i][j]第i+1行j+1列
      int b[5];
     
      //a = b;//error a是常量
      printf("%#X ", &a[0]);
      printf("%#X ", a);
     
      return 0;
      }
      /*
      在Vc++6.0中的输出结果是:
      --------------
      0X12FF6C
      0X12FF6C
      Press any key to continue
      --------------
      总结:
      一维数组名是个指针常量
      它存放的是一维数组第一个元素的地址
     
      */

    1.2>下标和指针的关系

    如果p是一个指针变量,则p[i] 永远等价于 *(p+i)

    确定一个一维数组需要几个参数:

    如果一个函数要处理一个一维数组,则需要接受该数组的哪些信息 (1)数组的首地址 (2)数组的长度

    /*
       2020年6月13日18:58:38
    一定要明白第10行的pArr[3] 和17行 19行的a[3] 是同一个变量
    */

    # include <stdio.h>

    void f(int * pArr, int len)
    {
    pArr[3] = 88;  // 10行 pArr[3] = *pArr[3]
    }

    int main(void)
    {
    int a[6] = {1,2,3,4,5,6};

    printf("%d ", a[3]); //17行

    f(a,6);

    printf("%d ",a[3]);  //19行




    return 0;
    }

    1.3>指针变量的运算

    指针变量不能相加 不能相乘 也不能相除

    如果两个指针变量指向的是同一块连续空间中的不同存储单元,则这两个指针才可以相减

    1.4>一个指针变量到底占几个字节【非重点】

    预备知识:

    sizeof(数据类型)

    功能:返回值就是该数据类型所占的字节数

    例子:sizeof(int)=4 sizeof(char)= 1; sizeof(double) = 8;

    假设p指向char类型变量

    假设q指向int类型变量

    假设r指向double类型变量

    p q r 本身所占的字节是否一样?

    答案: p q r 本身所占的字节是一样的,都是4个字节

    总结:一个指针变量无论他指向的变量占几个字节,该指针变量本身只占四个字节

    一个变量的地址是用该变量的首地址来表示

    1. 指针和二维数组

  • 相关阅读:
    Java中,由this关键字引发的问题
    Spring3.2.11与Quartz2.2.1整合时内存泄漏的问题的解决
    使用Nexus管理Maven仓库时,上传带依赖的第三方jar
    ActiveMQ5.10.2版本配置JMX
    JAVA的Hashtable在遍历时的迭代器线程问题
    关于JAVA中String类型的最大长度
    新增了某个模组后VS编译不过,报错说找不到头文件
    重写Overlap事件
    cmd端口占用查看和关闭端口
    转---详细的Android开发环境搭建教程
  • 原文地址:https://www.cnblogs.com/icoding233/p/13174121.html
Copyright © 2011-2022 走看看