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. 指针和二维数组

  • 相关阅读:
    Spring 事务传播实践分析
    记一次%转义引发的血案
    Springboot+redis 整合
    SpringBoot基础梳理
    MyBatis String类型传递参数注意事项
    SpringBoot填坑系列---XML方式配置数据库
    自定义AlertView(Swift)
    iOS开发,最新判断是否是手机号的正则表达式
    iOS开发 UILabel实现自适应高宽
    iOS开发笔记--UILabel的相关属性设置
  • 原文地址:https://www.cnblogs.com/icoding233/p/13174121.html
Copyright © 2011-2022 走看看