Попытка понять, как работает указатель в функции, которая возвращает массив.
Когда временный массив возвращается в функцию, почему p [0] равно 1, а p [1] равно 3? Поскольку переменные x и y меняются местами внутри функции, а temp [0] и temp [1] не меняются местами.
int *swap(int *x, int *y){
static int temp[2];
temp[0] = *x;
temp[1] = *y;
*x = temp[1];
*y = temp[0];
return temp;
}
int main() {
int x = 3;
int y = 1;
int *p = swap(&x, &y);
GPIO_PORTF_AHB_DATA_BITS_R[LED_RED] = LED_RED;//turn on red led
delay(p[0]);
GPIO_PORTF_AHB_DATA_BITS_R[LED_RED] = 0;//turn off red led
delay(p[1]);
}