社区
C语言
帖子详情
请问一个关于指针自增自减的问题
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
打赏
收藏
请问一个关于指针自增自减的问题
请看下面的程序: 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); }
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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)
33.
指针
与
自增
自减
运算符
指针
与
自增
自减
运算符
力扣随笔之盛最多水的容器(中等11)
思路:定义左右两个
指针
(下标)为left和right,定义
一个
指针
low,指向左右
指针
所指数字的较小者。现在容器容水量为:(right - left)× low;因为当底边减少的条件下,面积增大的唯一可能就是高增加,所以我们现在寻找的就是比low高的垂线,当low指向左
指针
时,左边开始
自增
遍历寻找比low高的垂线,找到后计算面积,并与最大面积比较,取两者较大者;当low指向右
指针
时,右
指针
开始
自减
寻找比low高的垂线,找到后计算面积,并与最大面积比较,取两者较大者。
指针
变量
自增
自减
总结以及
指针
结合优先级的示例
指针
变量的
自增
和变量的
自增
自减
还是有很大的差别的。
指针
增一就是内存地址进入下一位,而且根据
指针
变量的类型不同而不同。比如整型
指针
变量增一就是加4,因为
一个
整型数据在内存中占四个字节。 对最后
一个
(d)做一下解释。 int i=3; int x; int *p; *p=&i; x=++(*p);//相当于x=++i 对于
指针
的
自增
自减
,用数组的例子可能会更好理解,所以下面我用数组的例子来...
C++039(
指针
的
自增
自减
运算)
通过sizeof运算符可快速得知不同数据类型的字节宽度。下面将上述实例中p的
指针
类型改为double,看一下
指针
自增
、
自减
运算的结果。
C++数组
指针
不能
自增
1/
自减
1
我们知道
指针
可以
自增
1/
自减
1,如下面这个代码是没
问题
的 int *var; var++; 但如果var是指向数组的
指针
,那么var++是非法的,如下面例子 #include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 20...
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章