展开全部
好像很绕口.
一个内存区域,它保存了数值(比如字符串"abcde"),
这个内存区域有自己的地址,即整个内存条上,它所在位置的编号,这个编号也是一个数值;
既然是数值,那就可以用变量AA来保存它,保存这个地址的变量AA就叫做指针;
如此循环下去,指针这个变量AA也是个保存了值的内存区域,也有地址,也可以用一个变量BB保存它,变量BB也是指针了,相对AA而言,它就是二级指针
实际操作而言:
long a = 100; //a保存了实际值
long* b = &a; //b保存的是a的地址
long* c = &b; //c保存的是b的地址
//然后逆操作一次
*c = 0x1d08b987; //我想操作b,让 b=0x1d08b987 了
**c = 200; //我想操作a,让 a=200 了
一个内存区域,它保存了数值(比如字符串"abcde"),
这个内存区域有自己的地址,即整个内存条上,它所在位置的编号,这个编号也是一个数值;
既然是数值,那就可以用变量AA来保存它,保存这个地址的变量AA就叫做指针;
如此循环下去,指针这个变量AA也是个保存了值的内存区域,也有地址,也可以用一个变量BB保存它,变量BB也是指针了,相对AA而言,它就是二级指针
实际操作而言:
long a = 100; //a保存了实际值
long* b = &a; //b保存的是a的地址
long* c = &b; //c保存的是b的地址
//然后逆操作一次
*c = 0x1d08b987; //我想操作b,让 b=0x1d08b987 了
**c = 200; //我想操作a,让 a=200 了
追问
谢谢,但是它们在运用上又有什么区别呢?比如说在释放内存的时候?在作为调用函数传递参数的时候?
追答
1级指针的内存操作.参数传递弄懂没?
2级指针那也是指针,跟1级指针完全没区别,
只不过1级指针的值int.long这样的,而2级指针的值是指针
展开全部
一级指针相当于一维数组,二级指针相当于二维数组,这样更容易理解。
追问
谢谢,但是它们在运用上又有什么区别呢?比如说在释放内存的时候?在作为调用函数传递参数的时候?
追答
int * a这就算一维指针咯,int a[b[10]]这就算二维指针啊,这区别很明显啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这和c语言里的情况一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询