int array[3]; array[0] = 0; array[1] = 1; array[2] = 2; array[3] = 999; // out of bounds int arr1[3] = {0,1,2}; // initialization list int arr2[] = {0,1,2}; // implicit array w/ init list int arr3[99] = {0}; // partial array int arr4[2][3]; // 2D array [row][colm]
initializing arrays, processing arrays, running total, multi dimensional arrays
returnType funcName(parameter, list); // prototype returnType funcName(parameter, list) { // definition // return } void sayHello() { cout << "Hello\n" << endl; return(); } int sum(int a, int b) { return(a + b); } bool isPositive(int num) { if(num > 0) return(true); //else return(false); } void increment(int &num, int val=1) { num+=val; } void printArr(int arr[], int size) { for(int i=0; i<size; i++) cout << arr[i] << endl; }
passing parameters: pass by value, pass by &reference
function overloading
default arguments
boolean functions
passing an array as an argument
int x = 3; int *ptr = &x;
cout << ptr << endl;
cout << *ptr << endl;
ptr++; ptr = ptr - 1;
pointer declaration, pointer initialization, dereferencing
a pointer, pointer arithmetic.
int *p = NULL;
p = new int;
*p = 3;
cout << *p << endl;
delete p;
p=NULL;
int *q = NULL;
q = new int[2];
q[0] = 3;
*(q+1) = 4;
cout << q[0] << endl;
cout << *(q+1) << endl;
delete [] q;
q=NULL;
struct Square { int length; int width; }; ... Square s1; // one object s1.length = 2; s1.width = 2; Square squares[2]; // static array of objects Square* dynSqrs = NULL; try{ // try dynSqrs = new Square[3]; // to allocate 3 Square objs dyncamically }catch(bad_alloc) { // if allocation failed, bad_alloc excpt. caught cout << "bad allocation\nexiting program"; exit(EXIT_FAILURE); // close the program } if(dynSqrs!=NULL) { // good habit to check if pointer != NULL // process dynSqrs }