/* CSI2131 Lab4 - Pointers - Array allocation - Arguments passing by Jeff Souza */ #include using namespace std; void pointers(); void arrays(); void arguments(); void swapV(int x, int y); void swapR(int& x, int& y); int main() { /* Pointers */ pointers(); /* Allocating Arrays */ //arrays(); /* Argument passing */ //arguments(); return 0; } // This function shows how to define and // use pointers and their operations void pointers() { int *pt_int1, *pt_int2; float *pt_float; int a = 7, b = 27; float x = 1.2345, y = 32.14; cout << "\n -------------------\n"; cout << "| Pointers |\n"; cout << " -------------------\n\n"; pt_int1 = &a; *pt_int1 += b; cout << "A now has the value of " << *pt_int1 << "\n"; pt_float = &x; y += 5 * (*pt_float); cout << "Y now has the value of " << y << "\n"; pt_int2 = pt_int1; a = 123; cout << "Pt_int2 in pointing to a variable with value " << *pt_int2 << "\n\n"; cout << "Pt_int1 in pointing to position " << pt_int1 << " in memory.\n"; cout << "Pt_int2 in pointing to position " << pt_int2 << " in memory.\n"; cout << "Pt_float in pointing to position " << pt_float << " in memory.\n\n"; } // This function demonstrates three different // methods to allocate arrays in C++ // - Direct static allocation // - Static allocation with constant // - Dynamic allocation with pointer and variable void arrays() { const int num_elements_const = 100; int num_elements_variable; cout << "\n -------------------\n"; cout << "| Arrays |\n"; cout << " -------------------\n\n"; // static allocation int array1[100]; cout << "Array1 allocated\n"; // static allocation with constant int array2[num_elements_const]; cout << "Array2 allocated\n"; // dynamic allocation with pointer and variable cout << "Type the number of elements for array3 : "; cin >> num_elements_variable; int *array4; array4 = new int[num_elements_variable]; cout << "Array3 allocated with " << num_elements_variable << " positions.\n"; // don't forget to destroy this array after use delete[] array4; } // This function is designed to make use of // two other functions that receive arguments // as reference and value void arguments() { int a = 10; int b = 20; cout << "\n -------------------\n"; cout << "| Argument passing |\n"; cout << " -------------------\n\n"; cout << "Initial Values:" << endl; cout << " a = " << a << endl; cout << " b = " << b << endl; // Passing arguments by value swapV(a,b); cout << "Passing by Value:" << endl; cout << " a = " << a << endl; cout << " b = " << b << endl; // Passing arguments by reference swapR(a,b); cout << "Passing by Reference:" << endl; cout << " a = " << a << endl; cout << " b = " << b << endl; } // This function demostrates the C++ "default" // argument passing method : by-value void swapV(int x, int y) { int tmp = x; x = y; y = tmp; } // This functions shows hoe to pass argument // by-reference in C++ void swapR(int& x, int& y) { int tmp = x; x = y; y = tmp; }