C++ 问题

[复制链接]
查看11 | 回复3 | 2009-12-19 18:04:59 | 显示全部楼层 |阅读模式
a=pl==&m 改成 a=pl=&m 试试。
回复

使用道具 举报

千问 | 2009-12-19 18:04:59 | 显示全部楼层
a=pl==&m;这句是先对比pl==&m的真假,真为1假为0,然后赋给a
回复

使用道具 举报

千问 | 2009-12-19 18:04:59 | 显示全部楼层
你好,不知道指针你是不是很了解。对指针进行赋值后,p1就是变量k的内存起始地址,而*p1就代表变量k。p2同理。&k就是变量k的起始地址,&m同理。接下来说说运算符的问题。==为关系运算符,=为赋值运算符,关系运算符优先级高于赋值运算符。因此程序先计算的是判断p1是否等于&m。这里可以把==看做是一个函数,当两端相等时返回1,不等时返回0。因为p1不等于&m,所以原来的式子就可以变为a=0,就是将a赋值为0,所以会得到你说的结果。
回复

使用道具 举报

千问 | 2009-12-19 18:04:59 | 显示全部楼层
这个没有错pl不等于&m所以a被赋予0.若得到的结果和预期的结果不一样的话,你把a=pl==&m改为a=pl=&m看看。ok!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行