Why is the addresses same? : void test(int k);

int main() 

{
  
int i = 0;
    
  printf("The address of i is %x\n", &i);

  test(i);

  printf("The address of i is %x\n", &i);

  test(i);

  return 0;

}

void test(int k) 

{

  print("The address of k is %x\n", &k);

}

Here, &i and &k addresses are different although k holds the value of i...Is this because after function declaration k takes separate memory allocation? Please Explain to me!