理解int *a,int **a,int a[],int *a[]的区别
程序员文章站
2022-06-01 21:59:52
...
理解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
第一次写一些东西,没有什么头绪,只是把自己所想的写出来,以后再接再厉。
推荐阅读
-
int转string的方法(教你如何转换2者类型)
-
string转short类型(int转short强制转换的方法)
-
java字符串转int方法(免费分享这4种转换方式)
-
浅谈python 四种数值类型(int,long,float,complex)
-
python中int与str互转方法
-
WPF TextBox绑定Int类型的属性
-
js中int和string数据类型互相转化实例
-
Convert.ToInt32与Int32.Parse区别及Int32.TryParse
-
c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)
-
java字符串转int方法(免费分享这4种转换方式)