今天了做个题目:
编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。
示例:
输入: numbers = [1,2]
输出: [2,1]
int* swapNumbers(int* numbers, int numbersSize, int* returnSize){
*returnSize=2;
numbers=(long long)numbers;
numbers[0]=numbers[0]+numbers[1];
numbers[1]=numbers[0]-numbers[1];
numbers[0]=numbers[0]-numbers[1];
return numbers;
}
因为在使用int 型做时会发生溢出,我就将int 转换成long long 但是结果任然为溢出。 是因为函数的返回值规定的类型为int,有将long long 转化为 int 还是其它的原因? 希望有懂的大神解释一下。