Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.
-
Upload
gerard-holt -
Category
Documents
-
view
222 -
download
0
description
Transcript of Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.
![Page 1: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/1.jpg)
![Page 2: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/2.jpg)
PointerLecture 2
Course Name: High Level Programming LanguageYear : 2010
![Page 3: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/3.jpg)
3
Learning Outcomes
At the end of this lecture, students are capable of:
• Using pointer in C Language through an understanding of microprocessor architecture
![Page 4: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/4.jpg)
4
Outline Material• Pointer and Architecture
Computer• Usage Of Pointer• Variable Pointer
![Page 5: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/5.jpg)
5
Pointer and Arsitektur Komputer• Pointer is an address!!!
33
k
?
Uninitialized integer pointer (pointing to a random location)
Null pointer (pointing to a NULL location or to a grounding location “0”)
integer pointer (pointing to a variable k)
![Page 6: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/6.jpg)
6
Pointer and Architecture Computer• Function of pointer:
– It can refer to one object now and a different object later
• Generally, a pointer in C program functions to:– Return two or more value from a function– Operate on data type string– Operate on arrays and struct– Data structure that changes size (next week)
![Page 7: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/7.jpg)
7
Usage Of Pointer
int x = 10;int *p;
p = &x;
*p = 20;
Pointer declaration to data type integer
& is an address operator that takes the address of x
* dereference operator takes value from p
![Page 8: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/8.jpg)
8
Usage Of Pointer
int x = 10;int *p;
p = &x;
p takes the address of the variable x
p
x10
![Page 9: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/9.jpg)
9
Usage Of Pointer
int x = 10;int *p;
p = &x;
*p = 20;
*p is the value inside the address p
p
x20
![Page 10: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/10.jpg)
Conclusions• Pointer variable contains address, not data value,
always remember that!• Pointer refers only to one particular object at one
time, though later, it can be altered to different object.
• Dereference Pointer is used to access a content of a particular memory allocation.
10
![Page 11: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/11.jpg)
11
Topic For Next Week• Variable Pointer
– Assignment: Read book of “CppEssentials.pdf” chapter 5 pages 65 until 79.
– Do the following exercises (taken from “exercises” page 80 of book “CppEssentials.pdf”):
1. Define a function to input a list of names and store them as dynamically-allocated strings in an array, and a function to output them:
void ReadNames (char *names[], const int size);void WriteNames (char *names[], const int size);
![Page 12: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/12.jpg)
12
Topic For Next Week
Continued.
Write another function which sorts the list using bubble sort:
void BubbleSort(char *names[], const int size);
Bubble sort involves repeated scans of the list, where during each scan adjacent items are compared and swapped if out of order. A scan that involves no swapping indicates that the list is sorted.
![Page 13: Pointer Lecture 2 Course Name: High Level Programming Language Year : 2010.](https://reader035.fdocuments.us/reader035/viewer/2022062401/5a4d1b7b7f8b9ab0599b9140/html5/thumbnails/13.jpg)
13
Topic For Next Week2. Rewrite the following function using pointer
arithmetic:
char* ReverseString (char *str){
int len = strlen(str);char *result = new char[len + 1];
for (register I = 0; I < len; ++i)result[i] = str[len – i – 1];result[len] = ‘\0’;
return result;}