void Swap (ElementType int *a, ElementType int *b,ElementType Tmp[ ]) { ElementType Tmp = *a; *a = *b; *b = Tmp; }检查这段代码
时间: 2023-06-17 20:08:41 浏览: 75
Lerner -- Python Workout. 50 Essential Exercises -- 2020.pdf
这段代码有一些问题。
首先,参数列表中的类型说明符 `ElementType` 应该放在变量名之前,而不是之后。正确的参数列表应该是:
```c
void Swap(ElementType *a, ElementType *b, ElementType Tmp[])
```
其次,函数体中的第一行代码 `ElementType Tmp = *a;` 定义了一个名为 `Tmp` 的新变量,与函数参数列表中的 `Tmp` 数组重名,会导致编译错误。应该删除这行代码。
最后,函数体中的第三行代码 `*b = Tmp;` 赋值语句的右侧应该使用参数列表中的 `Tmp` 数组,而不是函数体中被删除的那个变量。应该改为:
```c
*b = Tmp[0];
```
综上所述,正确的 `Swap` 函数实现应该是:
```c
void Swap(ElementType *a, ElementType *b, ElementType Tmp[]) {
Tmp[0] = *a;
*a = *b;
*b = Tmp[0];
}
```
阅读全文