c/c++ (疑1)数组和指针
来源:互联网 发布:少年手指虎淘宝 编辑:程序博客网 时间:2024/06/06 03:21
指针:
很多人 都知道 指针是保存变量的地址,有时候想想还是挺迷惑的。
数组:
数组名实际就是一个地址,指向数组的首地址。
疑问1 那么我如何使用指针来操作数组呢?
int main(){int arr[3]={3,5,9};int *ptr1[3] = {nullptr};int (*ptr2)[3] = &arr;//ok*ptr1 = &arr[0];//ok//*ptr1 = &arr//errorfor(int i=0; i<3;i++){cout<<(*ptr2)[i]<<endl;//okcout<<ptr2[i]<<endl;cout<<(*ptr1)[i]<<endl;//okcout<<ptr1[i]<<endl;}//printf("%d", sizeof(short));system("pause");return 0;}
如果还有疑问:
那么,数组指针 ,指针数组 看看下面的说明。
int *arry[10]; //指针数组int (*arryp)[10]; //数组指针,因为数组指针指向数组,而数组也可看做是个指针,那数组指针可以理解为一个二 级指针int a[10]; arryp = &a; //将数组地址个数组指针 arry[0] = *arryp; //arry[0]是一级指针,要将数组指针赋给指针数组,就要取内容,实际就是 arry[0] = a;
提示:数组分配是连续的地址,所以
*ptr1 = &arr[0];//ok也可以连续取出值。
二级指针:
指针也是一个对象,对象就有自己的地址,那么指针也可以赋值给指针地址。
int p1 = 100, *p2 = &p1 ;int **p3 = &p2;cout<<p1<<endl;cout<<*p2<<endl;cout<<**p3<<endl;
关系图如下:
p3--------------------------->p2----------------------------->p1(100)
引用:
引用本身自己不是一个对象,那么就不存在地址,那么也不存在指向引用的指针。
也说明了,存在指向指针的引用。
2 0
- c/c++ (疑1)数组和指针
- 【c/c++】指针数组和数组指针
- c++---数组和指针
- C 指针和数组
- C -- 数组和指针
- C++:数组和指针
- C 指针和数组
- C:数组和指针
- C:指针和数组
- 《C和指针》- 数组
- C指针和数组
- c 数组 和 数组指针
- 指针数组和数组指针(C)
- 指针数组和数组指针(C)
- C指针数组和数组指针
- C语言指针数组和数组指针
- C语言指针数组和数组指针
- C语言指针数组和数组指针
- java web项目 权限管理
- 数据库自学笔记
- MySQL填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
- 深复制与浅复制
- C++ Primer第五版刷刷总结之第一章例程
- c/c++ (疑1)数组和指针
- MVC+LINQ+EF实战(.NET平台)
- rails项目编写中的一些小技巧小心得
- [LeetCode]Largest Number
- 15多线程编程
- java定义数组的三种类型
- 网络编程中何时转换传输数据的字节序
- 新年目标
- c++ primer plus 习题6.1 (cctype,cin.get)