Resultado por valor de paso? [duplicar

Posibles duplicados:
pasar por referencia o pasar por valor?
Pass por referencia / valor en C ++

Tengo problemas con el método de pasar por valor de resultado. Entiendo pasar por referencia y pasar por valor, pero no estoy muy claro sobre el resultado de pasar por valor. ¿Qué tan similar es pasar por valor (suponiendo que sea similar)?

aquí está el código

#include <iostream>
#include <string.h>
using namespace std;

void swap(int a, int b)
{

  int temp;
    temp = a;
    a = b;
    b = temp;
}

int main()
{
  int value = 2;
  int  list[5] = {1, 3, 5, 7, 9};


  swap(value, list[0]);

  cout << value << "   " << list[0] << endl;

  swap(list[0], list[1]);

  cout << list[0] << "   " << list[1] << endl;

  swap(value, list[value]);

  cout << value << "   " << list[value] << endl;

}

now el objetivo es averiguar cuál es el valor de "valor" y "lista" si utiliza el resultado de pasar por valor. (NO pasar por valor).

Respuestas a la pregunta(2)

Su respuesta a la pregunta