理解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];
指向同一个地址

2.谈一谈指针:

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

3.int *,int **的作用

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

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

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

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

6.总的来说一下

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

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

  • 27
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值