A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请详细说明,谢谢大家!~

点评

楼上说的是对的  发表于 2015-8-22 11:44

19 个回复

倒序浏览
P是指针变量,存储的是地址;
P+1代表地址值从低地址到高地址;
指针是什么类型的就移动几个字节空间,如果是int类型就移动4个字节;
回复 使用道具 举报 3 0
楼上正解
回复 使用道具 举报
学习了二楼
回复 使用道具 举报
补充:在二维数组中,表示列的形式进行移动。
回复 使用道具 举报
二楼厉害啊、
回复 使用道具 举报
代表上一个数组元素
回复 使用道具 举报
这是指针的运算,代表指针p存储的地址向内存中的高位移动一个步长,而步长的长度与指针定义时的类型有关.如果是int类型指针,那么步长就是4个字节,double类型的指针其步长为8个字节.如果是数组类型的指针,则一个步长等于数组长度乘以数组元素的类型.
         例如
                   int a = 1;
                   int *p = &a;
                   我们假设,a的地址是0xabc100,那么p存储的地址就是0xabc100,则p+1就是a的地址向高位移动一个步长(4个字节),那么p+1的地址就是0xabc104.
         又如
                 int arr[3] = {1,2,3,4};
                 int (*p)[3] = &arr;
                 这个指针是一个int数组类型的指针,p存储的是整个数组的地址(&arr),我们假设这个数组的地址是0xabc200,那么p+1的意思是这个数组的地址向高位移动一个步长,这个步长的长度为20个字节(既数组长度3  *   数组元素类型占用的字节4),则p+1的地址是0xabc212.
回复 使用道具 举报
lzfree 中级黑马 2015-8-10 22:05:33
9#
why19910522 发表于 2015-8-10 21:59
这是指针的运算,代表指针p存储的地址向内存中的高位移动一个步长,而步长的长度与指针定义时的类型有关.如果 ...

是纯手打吗?最后出现笔误了哈哈

点评

必须是纯手打,哪里打错?  发表于 2015-8-11 07:25
回复 使用道具 举报
明白了谢谢你
回复 使用道具 举报
楼上说的很棒
回复 使用道具 举报
支持2楼,p是地址,*p是地址内存的值,p+1是间隔一个类型的地址,*(p+1)是p+1的地址内存的值,*p+1是p地址内存的值再加上1
回复 使用道具 举报
Jo_ 中级黑马 2015-8-21 23:23:14
13#
要看指针是什么类型的,才好判断p+1
回复 使用道具 举报
就是指向下一个地址,
回复 使用道具 举报
学到了。
回复 使用道具 举报
2楼说的很对
回复 使用道具 举报
            又涨姿势了
回复 使用道具 举报
每天进步一点点,总有一天成妖孽
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马