CS201-15 - Introduction to Programming Lecture 15 In...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Introduction to Programming Lecture 15 In Today’s Lecture Pointers and Arrays Manipulations Pointers Expression Pointers Arithmetic Multidimensional Arrays Pointer String and Array Pointers and Arrays int y [ 10 ] ; Starting Address of Array y 0 1 2 3 4 5 6 7 8 9 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] The name of the array is like a pointer which contain the address of the first element. Declaration of a Pointer Variable int y [ 10 ] ; int *yptr ; yptr is a pointer to integer yptr = y ; Declaration of a Pointer Variable 0 1 2 y[3] 3 4 5 6 7 8 9 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] int y [ 10 ] ; int *yptr ; yptr = y ; yptr ++ ; location 3000 3004 3008 3012 3016 y[0] y[1] y[2] y[3] y[4] pointer variable yPtr In this case yptr is a pointer to integer so now when we increment yptr it points to the next integer Example 1 #include<iostream.h> main ( ) { int y [ 10 ] ; int *yptr = y ; yptr = y ; cout << yptr ; yptr ++ ; cout << yptr ; } yptr = y ; is same as yptr = &y [ 0 ] ; …….. yptr = &y [ 2 ] ; #include<iostream.h> main ( ) { int y [ 10 ] ; int *yptr ; yptr = y ; cout << yptr ; yptr ++ ; cout << *yptr ; } Example 2 Example 3 main ( ) { int x = 10 ; int *yptr ; yptr = &x ; cout << yptr ; cout << *yptr ; *yptr ++ ; increment whatever yptr points to } Pointer Arithmetic *yptr + 3 ; This Is an Expression cout << *yptr ; *yptr += 3 ; Pointer Arithmetic yptr = &x ; yptr ++ ; Pointer Arithmetic int x =10 ; int *yptr ; yptr = &x ; *yptr += 3 ; yptr += 3 ; Decrementing *yptr ­­ Pointer Arithmetic int *p1 ,*p2; ….. p1 + p2 ; Error Pointer Arithmetic int y [ 10 ] , *y1 , *y2 ; y1 = &y [ 0 ] ; y2 = &y [ 3 ] ; cout << y2 ­ y1 ; Pointer Arithmetic int y [ 10 ] ; int *yptr ; yptr = y [ 5 ] ; cout << *( yptr + 5 ) ; Pointer Comparison if ( y1 > y2 ) if ( y1 >= y2 ) if ( y1 == y2 ) Pointer Comparison if ( *y1 > *y2 ) Example int y [ 10 ] ; int *yptr ; yptr = y ; cout << y [ 5 ] ; cout << ( yptr + 5 ) ; cout << *( yptr + 5 ) ; int que [ 10 ] ; int y [ 10 ]; int *yptr ; yptr = y ; yptr = que ; Example location 3000 3004 3008 3012 3016 v[0] v[1] v[2] v[3] v[4] pointer variable vPtr Strings String Initialization char name [ 20 ] ; name [ 0 ] = ‘A’ ; name [ 1 ] = ‘m’ ; name [ 2 ] = ‘i’ ; name [ 3 ] = ‘r’ ; name [ 4 ] = ‘\0’ ; String Initialization Strings is always terminated with \0 String Initialization Array must be one character char name [ 20 ] = “Amir” ; space larger than the number of printable character which are to be stored. Example 4 char string1 [ 20 ] = “Amir”; char string2 [ 20 ] ; char *ptrA, *ptrB ; prtA = string1 ; prtB = string2 ; while ( *ptrA != ‘\0’ ) { *ptrB++ = *ptrA++; } *ptrB = ‘\0’ ; String Copy Function myStringCopy ( char *destination , const char *source ) { while ( *source != ‘\0’ ) { *destination++ = *source++ ; } *destination = ‘\0’ ; } In Today’s Lecture Pointers and Arrays Pointer Arithmetic String Arrays Manipulation of Arrays ...
View Full Document

This note was uploaded on 01/12/2010 for the course CS CS 201 taught by Professor Dr.naveedmalik during the Spring '09 term at Virtual University of Pakistan.

Ask a homework question - tutors are online