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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙明海   /  2015-10-26 22:28  /  2186 人查看  /  28 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

p495416980 发表于 2015-10-29 08:56
学习了,指针问题需要思路清晰

指针太费脑细胞  不能想太多  知道就行
回复 使用道具 举报
不知道怎么做
回复 使用道具 举报
zyios 发表于 2015-10-29 10:38
不确定答案,求解释

答案是确定的  上面我已经给出过解释的
*p=(int *)(&a+1);&a表示数组的指针 &a+1指针向高位移动sizeof(a)个字节,(int *)(&a+1)将数组指针强转为int型指针.*(p-1)表示将指针向低位移动一个4个字节取值 指针刚好移动到a[4]的地址 取值等于a[4]=5
回复 使用道具 举报
tsc0000 发表于 2015-10-29 19:20
a 是一维数组的首地址,&a就变成了二维数组中第一行数组的首地址了,那么&a+1 ,是二维数组中第二行的首地 ...

大神啊  
回复 使用道具 举报
那么第一个输出的2是怎么来的....直接学的OC,对C语言代码了解比较少,学来参考下
回复 使用道具 举报
加油加油,赞一个
回复 使用道具 举报
*(a+1)没问题,*(p-1)有点绕
回复 使用道具 举报

哪里,见笑了
回复 使用道具 举报
看起来很经典
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马