# CS210 Lab: Recursion Prelab

These questions are designed to review two concepts:

## Prelab Questions:

1. Given the following piece of code, why aren't a and b exchanged after the call to exchange? (How could you modify the code?)
```void exchange(int, int);

int main
{
int a=5,b=7;

exchange(a,b);
}

void exchange (int x, int y)
{
int temp;

temp = x;
x = y;
y = temp;
return;
} // end exchange
```
2. What is the difference between ClearPtr and ClearPtr2 in the following code? Will both pointer and pointer2 be set to 0 after the calls to ClearPtr and ClearPtr2. Why/Why not?
```#include<iostream>
using namespace std;

void ClearPtr(int *&p);
void ClearPtr2(int *p2);

int main()
{
int x=5, x2=6;
int *pointer, *pointer2;

pointer=&x;
pointer2=&x2;

cout << "x is: " << *pointer << endl;
cout << "pointer is holding address: " << pointer << endl;
cout << endl;
cout << "x2 is: " << *pointer2 << endl;
cout << "pointer2 is holding address: " << pointer2 << endl;
cout << endl;

ClearPtr(pointer);
ClearPtr2(pointer2);

cout <<"pointer is holding address: " << pointer << endl;
cout <<"pointer2 is holding address: " << pointer2 << endl;

return 0;
}

void ClearPtr(int *& p)
{
p=0;
}

void ClearPtr2(int *p2)
{
p2=0;
}
```
3. Write a code segment to move through a linked list of characters and remove all occurances of the letter 'c'.