当前位置:   article > 正文

理解int *a,int **a,int a[],int *a[]的区别

int **a

理解int *a,int **a,int a[],int *a[]的区别

1.首先我们先谈一谈数组的本质:

数组是多个元素的集合,并且在内存中分布在连续的地址单元中。

其任意一个元素的存储时间是相等的-----即随机存储结构

个人理解:数组就是连续的一排房子,每一个房子都有地址,和房子里面存储的东西,然后 

我们只要知道第一个房子的位置,就可以知道其余房子的在哪里,所以在数组a[], a就是

代表第一个房子的位子,而a[0]前面在加上&---即&a[0] 也是指数组的首地址。

int a[5],*p;
p = a;
p = &a[0];
指向同一个地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.谈一谈指针:

指针也是一种变量,它是用来保存其他内存单元的地址,它自己也有自己的地址;
 
指针也有变量的两种属性:1.存储内容,2.自己的位置。
  • 1
  • 2
  • 3

3.int *,int **的作用

int *是用来存一般变量的地址,而int **是用来存int *变量的地址;
  • 1

4.int a[], int *a[]作用

int a[] 就是从知道第一个地址开始建立一般变量
int *a[]就是从知道第一个地址开始建立指针变量
  • 1
  • 2

5.还要知道【】的优先级高于*,所以a先和【】结合,然后它就变成数组了,接着与 * 结合,变成指针。所以说 int *a[] 是一次性定义多个指针;

6.总的来说一下

int *a;			---定义一个指向整型变量的指针a
int **a;		---定义一个指向整型变量指针的指针a
int a[];		---定义一个整型变量数组a
int *a[];		---定义一个指向整型变量指针的数组a
  • 1
  • 2
  • 3
  • 4

第一次写一些东西,没有什么头绪,只是把自己所想的写出来,以后再接再厉。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AI数据结构灵魂/article/detail/63138
推荐阅读
相关标签
  

闽ICP备14008679号