网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月21日漏签0天
c语言吧 关注:799,018贴子:4,359,098
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回c语言吧
>0< 加载中...

求教一个关于用指针交换两个变量的值的问题

  • 只看楼主
  • 收藏

  • 回复
  • itachi251
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
a ^= b ^= a ^= b能正常交换两个变量的值
现在让pa是一个指向a的指针,pb同理
*pa ^= *pb;
*pb ^= *pa;
*pa ^= *pb;
这样也能正常交换a和b的值
但是*pa ^= *pb ^= *pa ^= *pb会让a的值变0,b的值变成a的原值是怎么回事?
环境是32位ubuntu
编译器是linux gnu gcc


  • moehuster
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
An assignment operator stores a value in the object designated by the left operand. The side effect of updating the stored value of the left operand shall
occur between the previous and the next sequence point.


2025-08-21 10:13:26
广告
不感兴趣
开通SVIP免广告
  • itachi251
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
找了点文档发现问题了。在两个sequence point之间多次修改同一个变量产生了问题。http://www.c-faq.com/expr/seqpoints.html


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示