在C++中,定义了一个结构体数组s[10],如果要把s[2]和s[9]数据交换,应该怎么做?如果要

2025-03-04 00:59:46
推荐回答(3个)
回答1:

如果是C++就好办, 可以用一个关键字:decltype

你可以这样用:

decltype(s[0]) t;
t = s[2];
s[2] = s[9];
s[9] = t;

这是C11标准的, 如果是11年前的编译器, 就会报错.

如果不用decltype, 那你就只能查看s的定义, 然后手写咯~

回答2:

#include

using namespace std;

struct people
{
int s[10];
};

int main()
{
people p;

for (int i = 0; i < 10; i++)
{
p.s[i] = i;
}

cout << "交换前的a[2]的值" << p.s[2] << endl;
cout << "交换前的a[9]的值" << p.s[9] << endl;

int a;
a = p.s[2];
p.s[2] = p.s[9];
p.s[9] = a;

cout << "交换后的a[2]的值" << p.s[2] << endl;
cout << "交换后的a[9]的值" << p.s[9] << endl;

return 0;
}

回答3:

std::swap