数组如何用指针_数组如何用指针赋值

数组如何用指针_数组如何用指针赋值指针&数组与指针&指针的运算一,指针的概念指针是一种变量类型。这种类型的变量只用用来存放内存地址。指针变量前面的数据类型表示这个指针指向的这片空间的类型。在同一个系统中&#

指针&数组与指针&指针的运算   一,指针的概念   指针是一种变量类型。这种类型的变量只用用来存放内存地址。指针变量前面的数据类型表示这个指针指向的这片空间的类型。   在同一个系统中,指针变量的大小都是一样大的。   ==》int *p; char *p1; double *p2 ;   ==> p,p1, p2大小都是一样大的。   ==》内存:一栋大楼   ==》每一个内存单(字节):大楼里面的房间   ==》内存地址:房间号   ==》指针: 专门记录房间号的大小   二,指针的赋值与使用   1.赋值   ·初始化赋值 : int a = 10; int *p = &a; //定义一个指针p存放变量a的地址   ·直接赋值 : int a = 10; int *p; p = &a; //定义一个指针p,然后把a的地址赋值给指针 p; 2.指针的使用   int a = 10; int *p = &a; 此时  a <==> *p   *在修饰一个变量的时候表示对这个变量进行解引用(通过这个地址找到这片空间)   三.指针与数组   1.数组与指针的关系   ==> 数组名即指针。    ==> 数组名就是数组的基地址   ==> int  A[3]; ==> A 就是数组A的首地址,也是数组第一个素的地址。   
数组如何用指针_数组如何用指针赋值   2.数组名与指针的区别   1)==》数组名不可以重新赋值!普通指针变量可以重新赋值!   ==> 数组名是整个数组的标志,数组素都是通过数组名加上下标进行访问,如果数组名指向的空间改变,那么这个数组空间就“丢失”了,我们找不到这个数组空间了,C语言中不允许出现这种情况!   2.对数组名取地址的结果是什么?   ==》 A == &A[0] == &A 表示的都是数组的首地址!   ==》这三个类型的指针类型不一样! A == &A[0]  ==> int *   ==》&A表示数组A类型的地址   四,指针的运算   1.*与&   & 和 * 之间是一个互逆的关系   ==> int a = 10; int *p = &a;   ==> 此时   p  ==  &a ; *p  ==  a; ==> *(&a) == a   ==> &是通过变量名找到这个变量的基地址;   ==> *是通过变量的基地址找到这个变量的空间; 2,数组名进行加法运算   ==》int A[5] = {10,20,30,40,50};   ==》 A == &A[0]   ==》 A +1==> &A[1]   结论:数组名进行加法运算时,存在这样的运算规则   A + i  ==》内存地址  A + sizeof(数组类型)*i;   ==>例如: int A[5]; 假设 A = 0xa0; A+1 = 0xa4;  A+3 = 0xac   注意:指针加上一个数字得到结果还是一个指针。指针的加法得到的结果会根据数据类型的大小进行加法。   ==》例题: 加上有一个数组 short A[3] = {100, 200, 300};  short *p = A;   ==> A数组首地址是 0xab20, 计算以下表达式的值   ==> A+1,  p+2,  &A+1,  A[0]+1,  *(p+1),  &A[2]   ==> A + 1 ==> 0xab22  ; ==> p+2  ==> 0xab24;   ==> &A+1  ==> &A = ? 0xab20 + sizeof(A) = 0xab26   ==> A[0]+1 == > 101; ==> *(p+1) ==>200   ==> &A[2] = 0xab20 + 2*sizeof(short) = 0xab20+4 = 0xab24 3.指针的加减运算   ·指针间的加法是没有意义的!   ·指针间的减法的结果表示两个指针间的数据的个数。(一般用于数组)   ==》int A[5];   ==》&A[0],  &A[3],   ==> &A[3] – &A[0] == ? 3   ==》int A[5];   ==》&A[0],  &A[3],   ==> &A[3] – &A[0] == ? 3   ==>  &A[3] ==> & *(A+3) ==> A+3   ==>  &A[0] ==> & *(A) ==> A   ==> 指针相减结果 = (内存地址1-内存地址2)/sizeof(数据类型);

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/88744.html

(0)
上一篇 2024年 6月 22日 上午7:56
下一篇 2024年 6月 22日 上午8:06

相关推荐

关注微信