
代码结果为什么是7,3wokxjdkwknxhxjjejnxnjdjnekxnnchdiisks
这个可能跟编译器有关,Dev-C++ 5.11运行结果和题目一致 。
测试如下:
参考链接:
C/C++不同编译器下自增++(自减--)运算顺序_不同编译器等式的运算顺序-CSDN博客
文章浏览阅读1.9k次,点赞3次,收藏7次。本文探讨了不同编译器下自增和自减运算符的处理逻辑差异,例如Visual Studio和DevC/VSCODE。在实际编程中,由于编译器的解析规则不同,连续使用自增或自减可能导致意料之外的结果,因此建议避免这种可能导致逻辑错误的做法,以确保代码的可移植性和可维护性。
https://blog.csdn.net/qfl_sdu/article/details/123702455
#include <iostream>
using namespace std;
struct ks{
int a;
int *b;
}s[4],*p;
int main(void){
int n=1;
for(int i=0;i<4;i++){
s[i].a=n;
s[i].b=&s[i].a;
cout<<"s["<<i<<"].a="<<s[i].a<<", *s["<<i<<"].b="<<*s[i].b<<", i="<<i<<", n="<<n<<endl;
n=n+2;
}
p=&s[0];
p++;
// https://blog.csdn.net/qfl_sdu/article/details/123702455
// 不同编译器,处理下面的表达式,可能会出现不同的结果
cout<<(++p)->a<<'.'<<(p++)->a<<endl;
return 0;
}
