首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++14和C++17使用:`*p++ = *p`的区别

C++14和C++17中*p++ = *p的区别如下:

在C++14中,*p++ = *p的含义是将指针p所指向的值赋给p指向的下一个位置,并将p指向下一个位置。这个表达式的行为是未定义的,因为它会导致指针p在同一表达式中既被修改又被使用,这违反了C++语言的规则。

在C++17中,*p++ = *p的含义是将指针p所指向的值赋给p指向的下一个位置,并将p指向下一个位置。这个表达式的行为是定义良好的,因为C++17中引入了指针迭代器的临时对象,它会在表达式结束后才递增指针p。这样,*p++ = *p的操作可以正确执行。

总结:

  • 在C++14中,*p++ = *p的行为是未定义的,不应该使用。
  • 在C++17中,*p++ = *p的行为是定义良好的,可以正确执行。

请注意,以上答案仅适用于C++14和C++17中*p++ = *p的区别。如果您对其他C++相关问题有任何疑问,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

8分38秒

day11/下午/225-尚硅谷-尚融宝-axios的整合和基本使用get和$get的区别

5分46秒

day02_27_尚硅谷_硅谷p2p金融_使用Application和Activity作为Context实例加载布局的不同

3分14秒

03-jQuery/07-尚硅谷-jQuery-jQuery对象和DOM对象使用上的区别

22分1秒

1.7.模平方根之托内利-香克斯算法Tonelli-Shanks二次剩余

6分9秒

054.go创建error的四种方式

12分23秒

1.8.模平方根之奇波拉算法Cipolla二次剩余

1分18秒

稳控科技讲解翻斗式雨量计原理

领券