请问一个关于指针自增自减的问题

musictornado 2002-10-03 09:09:07
请看下面的程序:
void main()
{typedef strct {int x,int y} number[]={{2,3},{4,5},{6,7}};
number *p=(number+1);
printf("%d",++p-->x);
printf("%d",p++-->x);
}
...全文
247 21 打赏 收藏 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchanglu 2002-10-04
  • 打赏
  • 举报
回复
你太马虎了吧 以后不要了 那不是浪费大家的时间吗
musictornado 2002-10-04
  • 打赏
  • 举报
回复
一年,有什么问题吗?
请看我的题好吗?希望支持!!!
Aofa_lee 2002-10-04
  • 打赏
  • 举报
回复
你学编程学了多旧啊?
musictornado 2002-10-04
  • 打赏
  • 举报
回复
up
musictornado 2002-10-04
  • 打赏
  • 举报
回复
up
musictornado 2002-10-04
  • 打赏
  • 举报
回复
sorry,前一题有一点错误,请看下面的另一题,这是99年的初程试题:
#include <stdio.h>

main()

{ struct num{ int x; int y;}

sa[] = {{2, 32}, {8, 16}, {4, 48};

struct num *p = sa+1;

int x;

x = p->y / sa[0].x * ++p->x;

printf(″x = %d p->x = %d\n″, x, p->x);

}

程序1.1的输出结果是____
xiaoluoli 2002-10-04
  • 打赏
  • 举报
回复
void main()
{typedef strct {int x,int y} number[]={{2,3},{4,5},{6,7}};
//typedef struct {int x,int y} number[]={{2,3},{4,5},{6,7}};
//这里定义了结构提数组并赋了初值,number 是一个数组名。

number *p=(number+1);
//定义了一个结构提数组p,并把number+1赋给p
printf("%d",++p-->x);
printf("%d",p++-->x);
}
stone112979 2002-10-04
  • 打赏
  • 举报
回复
up
stonejin 2002-10-04
  • 打赏
  • 举报
回复
我想也是你打错了,
typedef struct {int x,int y} Number;
sonwman 2002-10-04
  • 打赏
  • 举报
回复
程序的功能我看不出来,但我可以肯定P的值没有变化。
指针有它的变化规则。
caitou123 2002-10-04
  • 打赏
  • 举报
回复
哦,打错了,应是这样:
typedef struct {int x;
int y;} Number ;
caitou123 2002-10-04
  • 打赏
  • 举报
回复
typedef strct {int x,int y} number[]={{2,3},{4,5},{6,7}};
what's this?
就是错误,要用的话只能这样:
typedef strct {int x,int y} Number;
Number number[]={{2,3},{4,5},{6,7}};
Number *p=number+1;
...
输出是一样的,都是6。

lw_yx 2002-10-03
  • 打赏
  • 举报
回复
本来就难学了,还非得往牛角里钻,何苦!
lw_yx 2002-10-03
  • 打赏
  • 举报
回复
不要写些莫名的程序,自己跟自己过不去?
Zark 2002-10-03
  • 打赏
  • 举报
回复
number的用法是可以的,number 是变量名,结构名是匿名的。
number[]中存放着三个结构体。
p指向第二个即{4,5}

(++p)->x; p指向第三个,所以是6
p++->x, p仍指向第三个,所以还是6,但做完后,p指向第四个结构体,其值就没有什么意义了。
WuYL7812 2002-10-03
  • 打赏
  • 举报
回复
不应该这样浪费别人的时间。
写这些代码的人有病。

Keanu_Rocky 2002-10-03
  • 打赏
  • 举报
回复
typedef strct {int x,int y} number[]={{2,3},{4,5},{6,7}};
what's this?
我个人觉得,这样做是不是有错误啊?
number是变量名还是类型名??
hehe214 2002-10-03
  • 打赏
  • 举报
回复
看到什么了?
waterstony 2002-10-03
  • 打赏
  • 举报
回复
我看到了。
bigant888 2002-10-03
  • 打赏
  • 举报
回复
看不明白,关注~~
加载更多回复(1)

70,040

社区成员

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

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