c

kisa99 2003-10-13 02:32:10
1。先定义了指针p和数组a
后 p=a;
for(;p<a[0]+12;p++)
if((p-a[0])/4==0)printf("\n");//有这种减法吗
2。*(p++)和*(++p)不同,前者是先取p,后加,
后者是先加后取p,但我认为有括号应是一样的啊
3若只有主函数中用不用return没什么差别啊
...全文
20 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fireseed 2003-10-14
  • 打赏
  • 举报
回复
强烈建议楼主不要使用如此标题
pjh 2003-10-14
  • 打赏
  • 举报
回复
1。先定义了指针p和数组a
后 p=a;
for(;p<a[0]+12;p++)
if((p-a[0])/4==0)printf("\n");//有这种减法吗
答:定义的类型一样,可以p=a,但是后面不行。“p<a[0]+12”这个就不行,而p<a+12可以。那么p-a[0]就更不行了,但*p-a[0]可以。
2。*(p++)和*(++p)不同,前者是先取p,后加,
后者是先加后取p,但我认为有括号应是一样的啊
答:不加括号有不同.
3若只有主函数中用不用return没什么差别啊
答:如果是void类型就一样了
挺拔的劲松 2003-10-13
  • 打赏
  • 举报
回复

答:
1。如果定义的类型一样,可以p=a,但是后面不行。“p<a[0]+12”这个就不行,而p<a+12可以。那么p-a[0]就更不行了,但*p-a[0]可以。
2。不同,加不加括号都一样。因为p++可分解为,p和p=p+1两部分,第一次计算只能用p,下一次计算才可以用p=p+1。
3。主函数用不用return没什么差别。
kisa99 2003-10-13
  • 打赏
  • 举报
回复
main()
{int a[3][4];
int *p;
p=a;
likangnian0128 2003-10-13
  • 打赏
  • 举报
回复
++p是在整个表达式运算之前,计算p=p+1
而p++是在整个表达式运算之后,计算p=p+1

括号是没有办法改变++运算符什么时候将变量自加的~~


第一个问题你要把p和a的定义也写出来,才好判断。
daizh 2003-10-13
  • 打赏
  • 举报
回复
p-a[0]表示它们之间的地址偏移多少个字节。
seu2002 2003-10-13
  • 打赏
  • 举报
回复
*取的是括号中的表达式的值。p++的值是p,而++p的值是p+1.所以二者不同。
kisa99 2003-10-13
  • 打赏
  • 举报
回复
我是说p-a[0]会是什么结果啊
kisa99 2003-10-13
  • 打赏
  • 举报
回复
定义的是二维数组,
2我也知道不同,为什么啊
daizh 2003-10-13
  • 打赏
  • 举报
回复
1、问题说的不是很清楚。数组a是一维还是多维数组,这样a[0]的意思不一样。指针可以进行加减操作,他们只是对地址量的操作。
2、不一样。
3、如果主函数返回值类型是void,是没什么差不。它主要用于状态判断

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧