关于指针的关系运算

water_alliance 2009-05-07 09:00:39
有定义:
int a[5]={100,200,300,400,500},*pl=&a[0],b;
希望大家能详细解释以下运算过程:(我有点乱)
1)pl=&a[0],b=*pl++;
2)pl=&a[0],b=*++pl;
3)pl=&a[0],b=(*pl)++;
4)*(pl++);
5)pl=&a[1],b=++*pl;
...全文
196 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
water_alliance 2009-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhourenyun 的回复:]
多写点程序,慢慢体会,现在别人跟你讲明白不重要,重要的是应用的时候边体会边写。
另外就是
所谓的指针其实就是一个地址而已。
再加上运算法的优先级。这两点明白了 其实好多问题都不难解决。
[/Quote]
我想指针与地址是有区别的吧,不能混为一谈,地址只能定位存储单元的开始位置,而指针的值代表存储单元的地址,它的类型代表存储单元占用多少个连续字节内存单元。
pathuang68 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liliangbao 的回复:]
C/C++ code1)pl=&a[0],b=*pl++;
b = *pl,pl++;即b = 100, pl = &a[1]

2)pl=&a[0],b=*++pl;
pl++, b = *pl;即b = 200, pl = &a[1]

3)pl=&a[0],b=(*pl)++;
b = *pl,(*pl)++;即b = 100, *pl = 101

4)*(pl++);
*pl, pl++;

5)pl=&a[1],b=++*pl;
(*pl)++, b = *pl;即b = 201, pl = &a[1]
[/Quote]
正解!
ZWHLOVEPRO 2009-05-07
  • 打赏
  • 举报
回复
主要是*和++的优先级问题。再次就是前置++和后置++的区别。
前置++返回的是自加之前的值,而后置++返回的是自加之后的值。
把这两个问题搞清楚了相信你就不会乱了。
zhourenyun 2009-05-07
  • 打赏
  • 举报
回复
多写点程序,慢慢体会,现在别人跟你讲明白不重要,重要的是应用的时候边体会边写。
另外就是
所谓的指针其实就是一个地址而已。
再加上运算法的优先级。这两点明白了 其实好多问题都不难解决。
zysmiracle 2009-05-07
  • 打赏
  • 举报
回复
3楼正解
liliangbao 2009-05-07
  • 打赏
  • 举报
回复
1)pl=&a[0],b=*pl++; 
b = *pl,pl++;即b = 100, pl = &a[1]

2)pl=&a[0],b=*++pl;
pl++, b = *pl;即b = 200, pl = &a[1]

3)pl=&a[0],b=(*pl)++;
b = *pl,(*pl)++;即b = 100, *pl = 101

4)*(pl++);
*pl, pl++;

5)pl=&a[1],b=++*pl;
(*pl)++, b = *pl;即b = 201, pl = &a[1]


lingyin55 2009-05-07
  • 打赏
  • 举报
回复
++和*是同一优先级的,结合性为从右到左,而括号的优先级是所有操作符最高的。
自己看一下就明白上面那些计算了
pengzhixi 2009-05-07
  • 打赏
  • 举报
回复
int a[5]={100,200,300,400,500},*pl=&a[0],b; //pl指向a[0]
希望大家能详细解释以下运算过程:(我有点乱)
1)pl=&a[0],b=*pl++; //b等于a[0]的值,同时,pl指向p1
2)pl=&a[0],b=*++pl; //pl指向a[0],*++pl等效于++pl;*pl所以b的值为a[1]的值
3)pl=&a[0],b=(*pl)++; //(*pl)++等效于(*pl)+1;也就是说b=a[0]+1;
4)*(pl++); //和1)一样
5)pl=&a[1],b=++*pl;和3一样
内容概要:本文介绍了一种基于多目标粒子群算法(MOPSO)的微电网优化调度模型,综合考虑风能、光伏、储能系统、柴油发电机、燃气轮机以及与主电网之间的能量交互等多种分布式能源的协同运行。通过构建以运行成本最小化、碳排放最低化和系统可靠性最优化为目标的多目标优化模型,利用Matlab平台实现MOPSO算法求解,完成对微电网在不同运行场景下的能量管理与调度方案优化。该模型能够有效平衡经济性与环保性之间的关系,适用于含多类型分布式电源的复杂微电网系统,具有较强的工程应用价值和科研参考意义; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事微电网、智能电网、综合能源系统、可再生能源集成与优化调度等领域研究的专业人士; 使用场景及目标:①用于多能源耦合微电网系统的协同优化调度研究;②支持多目标智能优化算法在能源系统中的建模与求解实践,帮助用户掌握MOPSO在实际工程问题中的应用方法;③为学术论文复现、毕业设计、科研项目开发提供完整的代码实例与技术支撑; 阅读建议:建议读者结合Matlab代码与理论文档,深入理解目标函数构建、约束条件处理及Pareto最优解集生成机制,重点关注算法参数设置、多目标权衡分析与结果可视化,并可通过调整能源配置或引入新约束进行二次开发与创新研究。

33,315

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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