一道笔试题 (有正确讲解答案马上结贴) short array[4]={1,2,4,8},*p,*q;p=array;q=&array[4]; printf("%d,%d\n",(int)(q-p),(int)q-(int)p);不明白为什么是4和8 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是C语言的问题p和q是short类型的指针,p代表array的首地址,array的长度是4,q代表array数组所有元素紧接着首地址p-q差4个short的长度,而每个short的长度是2个字节,所以地址p和地址q之间相差就是8个字节 谢谢 最后一个疑问 为什么要强制转换为int型(int)(q-p) 1楼的朋友已经解释得比较清楚了(int)(q-p)=4你可以理解成,p移动4下(就是++)才能到q?记住,一次移动sizoef(short)个单元,int(q)-int(p),实际就是相关几个单元的问题上面的次数*(sizoef(short)) IREPORT如何实现动态列? --通用报表 实力化问题 大家来帮帮我啊.搞了一晚上还是没搞明白~! hsql无法将插入数据写入脚本文件中 对象和实例有什么区别?Class c =Class.forName("ss.dd.bb.Bean");和Bean b = new Bean();有什么区别? java与军事的抉择 关于JFrame上的关闭按钮的问题! 你遇到这种错误了么,帮忙看看!!! 关于类的继承的问题 船的航行模拟 面向对象 编程的时候 形参和实参同名是好习惯吗 java socket 这么将string转化为byte[]传输和接收
为什么要强制转换为int型
(int)(q-p)
(int)(q-p)=4
你可以理解成,p移动4下(就是++)才能到q?记住,一次移动sizoef(short)个单元,
int(q)-int(p),实际就是相关几个单元的问题
上面的次数*(sizoef(short))