指针和数组关系的浅析

SmartGame SmartGame     2022-09-21     322

关键词:

  关于指针和数组之间的关系,估计有人还是对于数组与指针地址的关系有些模糊,对于这点,我今天对这一点做一个小小的总结好了;

  我们已经知道指针和数组的用法差不多,但是指针的地址和指针指向的地址是不一样的,数组的地址和数组的首地址却是一样的; 

  #include <stdio.h>
  #include <string.h>
  #include <stdlib.h>


  void main1112()
  {
    char a[64];
    int i = 0 ,j = 0;
    char *b = NULL;
    char c[3][3];
    char *d[3];//指针数组
    char **e = NULL;//二级指针
    char (*f)[3];//数组指针
    int aa[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
    int (*bb)[3] = NULL;
    bb = aa;//将二维数组的地址赋给数组指针

    for( i = 0 ; i < 3;i++)
    {
      for( j = 0 ; j < 3;j++)
      printf("%d ",bb[i][j]);//存入到二维数组的数据被一一打印出来了
    }

    b = a;//一维数组的地址赋给指针
    f = c;//
    e = d; 

    printf("&a:%d,&a[0]:%d,b:%d,&b:%d,&b[0]:%d ",&a,&a[0],b,&b,&b[0]);
    printf("&c:%d,&c[0][0]:%d,&f:%d,f:%d,f[0]:%d,&f[0]:%d ",&c,&c[0][0],&f,f,f[0],&f[0]);
    printf("&d:%d,d[0]:%d,&d[0]:%d,&e:%d,e[0]:%d,&e[0]:%d ",&d,d[0],&d[0],&e,e[0],&e[0]);

    system("pause");
}

  先是打印所有变量的地址,我们发现都不一样然后我们打印b,f,e,我们发现&a 和 &a[0] ,以及指针b是相等的,但是&b和他们不等,b[0]可以取出数组的值,那么从哪里取出的值,数组的空间,那么取地址的话自然是a数组的地址,所以&b[0]和&a[0]相等;

  当中&c,&c[0][0],f[0],&f[0][0]相等,可以看出指针f[0]储存的是&c[0][0]的地址,f[0][0]可以取出值,那么储存数值的地方是哪里,当然是数组的空间同上,所以取地址的话就是数组的地址;

  同上指针数组和二级指针的关系也是这样e取的是d的地址,通过*(e+0) 即e[0] 可以取出取出d[0]的地址,&e[0]和&d[0]的地址一样;

  

一维数组和一级指针浅析

  想要了更容易的了解指针,很好的用法就是通过数组来了解,在c里面,感觉一维数组和一级指针的用法差不多,二维数组和二级指针的用差不多,所以通过数组来了解指针是一种很好的方法;  数组:将相同数据类型 ... 查看详情

二维数组和数组指针的关系

  昨天既然写了一些关于数组指针的话题,那么今天就写一些关于数组指针的话题吧!  数组指针:这样读数组的指针,即指向数组的指针,就是数组指针,其本质就是一个指针  比如:int(*a)[3];就是一个数组指针,运用... 查看详情

c语言指针ⅶ指针运算指针+-整数指针-指针指针的关系运算标准关系标准规定指针和数组二级指针指针数组。

查看详情

数组和指针关系的探讨

  在学习过程中,数组和指针的操作几乎完全一样,且不说传数组可以用传指针完全替代,而且指针也可以使用[]操作符来访问指针偏移后的地址,所以在实际应用中数组和指针用不出任何差别。(如下代码所示)#include<iost... 查看详情

指针和数组的关系

指针和数组的关系1.一维数组    Int a[5]={1.2.3.4.5};1)(P=&a[0]和p=a等价)                   & 查看详情

指针和一维数组之间的关系数组的引用方法指针的运算(代码片段)

/* 2022.06.07 目的: 学习指针和一维数组之间的关系 理论: 1.关系 a.数组是多个相同类型的变量的集合; b.每一个变量都占内存空间,都有自己对应的地址编号; c.指针变量也当然可以存放数组元素的地址; d.数组... 查看详情

指针和数组的关系

指针与数组的天生姻缘以指针方式来访问数组元素(1)数组元素使用时不能整体访问,只能单个访问。访问方式有2种:数组形式和指针形式。 (2)数组格式访问数组元素是,数组名[下标]; (注意下标从0开始) (3)指针格式... 查看详情

c语言学习笔记--指针和数组的关系

...ay_size; (3)数组名可看做指向数组第一个元素的常量指针(4)数组声明时编译器自动分配一片连续的内存空间,而指针声明时只分配了用于容纳地址值的4字节空间2.指针的运算(1)指针是一种特殊的变量,与整数的运算规... 查看详情

指针与一维数组和二维数组以及字符串指针数组的学习笔记

...,看注释信息理解即可。说明:本程序讨论了一维数组和指针的关系,谈论了二维数组和指针之间的关系,讨论了字符串数组指针数组和指针之间的关系,代码中以给出定义的方法和简单的使用,但是有些使用方法并没有列出,... 查看详情

二维数组和二级指针(真的没什么关系)

刚开始学c语言的时候,总是会认为,一级指针可以用来访问一维数组,那么二维数组就要用二级指针来访问啦。。。。实际上二级指针和二维数组真的没什么关系,而且,切记千万不要用二级指针访问二维数组。。。。。下面... 查看详情

指针和数组的关系

 数组名是一个指针常量,表示数组第一个元素的的起始地址。 如inta[5]; a表示数组第一个元素a[0]的起始地址&a[0]。 一引用数组元素的方法: ①用数组下标引用数组元素  数组a中元素用下标表示为:  ... 查看详情

指针和一维数组之间的关系数组的引用方法指针的运算(代码片段)

/* 2022.06.07 目的: 学习指针和一维数组之间的关系 理论: 1.关系 a.数组是多个相同类型的变量的集合; b.每一个变量都占内存空间,都有自己对应的地址编号; c.指针变量也当然可以存放数组元素的地址; d.数组... 查看详情

c指针和数组的关系详解(代码片段)

1.C中数组和指针的关系对于任意类型的数组arr,对于同类型的指针类型parr(确切一点,可以假设类型为int,即intarr[],*parr)。它们之间有如下"内幕":1.数组的名称arr本身就是一个指针,这个指针指向数组的第一个元素2.... 查看详情

为啥关系运算符不能在指针和数组中工作[关闭]

】为啥关系运算符不能在指针和数组中工作[关闭]【英文标题】:Whyrelationaloperatornotworkinginpointersandarrays[closed]为什么关系运算符不能在指针和数组中工作[关闭]【发布时间】:2021-06-2512:10:18【问题描述】:为什么while(p!=p+sz)是下... 查看详情

指针与数组(代码片段)

二级指针、指针数组、数组指针指针和数组的关系二级指针指针数组与数组指针指针数组的定义数组指针的定义举例指针和数组的关系通过上一篇文章指针的原理——地址、内存我们知道,数组名表示的其实是数组首元素的... 查看详情

c语言学习--指针(代码片段)

文章目录指针概述指针是什么?内存地址的产生指针变量的大小指针和指针类型指针变量解引用指针变量`+-`整数野指针野指针成因如何避免野指针指针运算指针`+-`整数指针`-`指针模拟实现`strlen()&#... 查看详情

javascript浅析javascript和html与unicode字符集的关系

...认使用UTF-8。读者可以点击这儿查看ASCII、unicode和utf-8的关系。 查看详情

指针与数组

 C语言学到这个时候,对于指针和数组的关系应该要有一个很明确的认识,要知道两者之间的联系和区别,但是,两者的关系往往也是C语言初学者容易拎不清的东西。C语言中的数组值得注意的地方有两点:(1)C语言只有一... 查看详情