Introduction to Computing Lecture 12 Pointers Dr. Bekir KARLIK Yasar University Department of Computer Engineering

Slides:



Advertisements
Similar presentations
1 Chapter Thirteen Pointers. 2 Pointers A pointer is a sign used to point out the direction.
Advertisements

Data Structures (Second Part) Lecture 2 : Pointers Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering
CPT: Pointers/ Computer Programming Techniques Semester 1, 1998 Objective of these slides: –to introduce pointer variables (pointers)
Pointers Discussion 5 Section Housekeeping HW 1 Issues Array Issues Exam 1 Questions? Submitting on Time!
Pointers and Output Parameters. Pointers A pointer contains the address of another memory cell –i.e., it “points to” another variable cost:1024.
Topic 2 Pointers CSE1303 Part A, Summer Semester,2002 Data Structures and Algorithms.
Kymberly Fergusson CSE1303 Part A Data Structures and Algorithms Summer Semester 2003 Lecture A2 – Pointers (Revision)
1 CSE1301 Computer Programming Lecture 16 Pointers.
1 CSE1301 Computer Programming Lecture 16 Pointers 2.
Pointers Ethan Cerami Fundamentals of Computer New York University.
M-1 University of Washington Computer Programming I Lecture 13 Pointer Parameters © 2000 UW CSE.
Pointers. Topics Pointers Pointer Arithmetic Pointers and Arrays.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming Pointers.
Bellevue University CIS 205: Introduction to Programming Using C++ Lecture 9: Pass-by-Value.
1 Chapter 9 Pointers. 2 Topics 8.1 Getting the Address of a Variable 8.2 Pointer Variables 8.3 Relationship Between Arrays and Pointers 8.4 Pointer Arithmetic.
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 14P. 1Winter Quarter Pointers Lecture 14.
1 CSE1301 Computer Programming Lecture 16 Pointers.
1 Review of Chapter 6: The Fundamental Data Types.
Computer Skills2 for Scientific Colleges 1 Pointers in C++ Topics to cover: Overview of Pointers Pointer Declaration Pointer Assignment Pointer Arithmetic.
Pointers CSE 2451 Rong Shi.
Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 14P. 1Winter Quarter Pointers Lecture 14.
Chapter 9 Pointers Fall 2005 Csc 125 Introduction to C++
Pointers Chapter 9. Getting The Address Of A Variable Each variable in program is stored at a unique address Use address operator & to get address of.
1 Programming with Pointers Turgay Korkmaz Office: SB Phone: (210) Fax: (210) web:
CSC 2400 Computer Systems I Lecture 5 Pointers and Arrays.
CPSC 252 Dynamic Memory Allocation Page 1 Dynamic memory allocation Our first IntVector class has some serious limitations the capacity is fixed at MAX_SIZE.
1 Pointers and Strings Chapter 5 2 What You Will Learn...  How to use pointers Passing arguments to functions with pointers See relationship of pointers.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Pointers.
19&20-2 Know how to declare pointer variables. Understand the & (address) and *(indirection) operators. Dynamic Memory Allocation Related Chapter: ABC.
Pointers Programming Applications. Pointer A pointer is a variable whose value is a memory address representing the location of the chunk of memory on.
CSEB 114: PRINCIPLE OF PROGRAMMING Chapter 7: Pointers.
Functions: Part 2 of /11/10: Lecture 16 CMSC 104, Section 0101 John Y. Park 1.
C Programming - Structures. Structures containing arrays A structure member that is an array does not ‘behave’ like an ordinary array When copying a structure.
M-1 University of Washington Computer Programming I Lecture 13 Pointer Parameters © 2000 UW CSE.
Lecture 7 Pointers & Refrence 1. Background 1.1 Variables and Memory  When you declare a variable, the computer associates the variable name with a particular.
C Programming Lecture 16 Pointers. Pointers b A pointer is simply a variable that, like other variables, provides a name for a location (address) in memory.
+ Pointers. + Content Address of operator (&) Pointers Pointers and array.
Lecture 10: 2/17/2003CS148 Spring CS148 Introduction to Programming II Ayman Abdel-Hamid Department of Computer Science Old Dominion University Lecture.
Pointers PART - 2. Pointers Pointers are variables that contain memory addresses as their values. A variable name directly references a value. A pointer.
Dr. Yang, QingXiong (with slides borrowed from Dr. Yuen, Joe) LT9: Pointer I CS2311 Computer Programming.
Computer Programming Lecture 12 Pointers Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering
POINTERS IN C Pointer Basics, Pointer Arithmetic, Pointer to arrays and Pointer in functions.
Functions and Pointers Dr. Sajib Datta Oct 6, 2014.
Pointers (Revision). 2 Overview Revision of Pointers Pointers and structs Basic Pointer Arithmetic Pointers and Arrays.
Basic Concepts:- Invalid use of Address Operator &75 &(‘a’) &(a+b)
Chapter 8 Arrays, Strings and Pointers
Computer Skills2 for Scientific Colleges
“Studying C programming excluding pointers is meaningless.” d0m3z
CSE 220 – C Programming Pointers.
Pointers.
Standard Version of Starting Out with C++, 4th Edition
POINTERS.
EPSII 59:006 Spring 2004.
INC 161 , CPE 100 Computer Programming
Pointer.
Lecture 6 C++ Programming
CSI-121 Structured Programming Language Lecture 16 Pointers 2
CSI-121 Structured Programming Language Lecture 16 Pointers
Programming fundamentals 2 Chapter 2:Pointer
INC 161 , CPE 100 Computer Programming
Topics discussed in this section:
بنام خدا زبان برنامه نویسی C (21814( Lecture 11 Pointers
Pointers Problem Solving & Program Design in C Eighth Edition
Programming with Pointers
Computer Skills2 for Scientific Colleges
Pointers Lecture 1 Thu, Jan 15, 2004.
C Programming Lecture-8 Pointers and Memory Management
C Programming Pointers
Programming fundamentals 2 Chapter 3:Pointer
Presentation transcript:

Introduction to Computing Lecture 12 Pointers Dr. Bekir KARLIK Yasar University Department of Computer Engineering

Topics Introduction to Pointers Pointers and Function Parameters

char ch = ’A’; ’A’ 0x2000 ch: Memory Address of a Variable The value of the variable ch. The memory address of the variable ch.

The & Operator Gives the memory address of an object Also known as the “address operator.” &ch yields the value 0x2000 char ch = ’A’; ’A’ 0x2000

“conversion specifier” for printing a memory address char ch; printf(“%p”, &ch); Example:

Pointers ch 0x1FFF0x20000x20010x20020x1FFE etc. ‘B’ 0x2000 chPtr 0x3A15 A variable which can store the memory address of another variable.

Pointers A pointer is a variable. Contains a memory address. Points to a specific data type. Pointer variables are usually named varPtr.

cPtr: char* cPtr; Example: We say cPtr is a pointer to char. 0x2004 Can store an address of variables of type char

Pointers and the & Operator Example: A c: 0x2000 char c = ’A’; char *cPtr; cPtr: 0x2004 cPtr = &c; 0x2000 Assigns the address of c to cPtr.

Notes on Pointers int* numPtr; float* xPtr; Example: We can have pointers to any data type. int *numPtr; float * xPtr; Example: The * can be anywhere between the type and the variable.

Notes on Pointers (cont.) You can print the address stored in a pointer using the %p conversion specifier. printf(“%p”, numPtr); Example: You can assign the address of a variable to a “compatible” pointer using the & operator. intaNumber; int*numPtr; numPtr = & aNumber; Example:

Notes on Pointers (cont.) int *numPtr; Beware of pointers which are not initialized! ??? numPtr

Notes on Pointers (cont.) int *numPtr = NULL; NULL numPtr When declaring a pointer, it is a good idea to always initialize it to NULL (a special pointer constant).

The * Operator Allows pointers to access to variables they point to. Also known as “dereferencing operator.” Should not be confused with the * in the pointer declaration.

A c: 0x2000 B Pointers and the  Operator Example: char c = ’A’; char *cPtr = NULL; cPtr: 0x2004 cPtr = &c; 0x2000 *cPtr = ’B’; Changes the value of the variable which cPtr points to.

Easy Steps to Pointers Step 1: Declare the variable to be pointed to. intnum; charch = ‘A’; float x; num: ‘A’ ch: x:

Easy Steps to Pointers Step 2: Declare the pointer variable. int* numPtr = NULL; char *chPtr = NULL; float * xPtr = NULL; intnum; charch = ‘A’; float x; numPtr: chPtr: xPtr: num: ‘A’ ch: x:

Easy Steps to Pointers Step 3: Assign address of variable to pointer. int* numPtr = NULL; char *chPtr = NULL; float * xPtr = NULL; intnum; charch = ‘A’; float x; numPtr = # chPtr = &ch; xPtr = &x; numPtr: addr of num addr of ch chPtr: addr of x xPtr: num: ‘A’ ch: x: A pointer’s type has to correspond to the type of the variable it points to.

Easy Steps to Pointers Step 4: De-reference the pointers. int* numPtr = NULL; char *chPtr = NULL; float * xPtr = NULL; intnum; charch = ‘A’; float x; numPtr = # chPtr = &ch; xPtr = &x; *xPtr = 0.25; *numPtr = *chPtr; num: 65 ‘A’ ch: 0.25 x: numPtr: addr of num addr of ch chPtr: addr of x xPtr:

Pointers and Function Parameters Example: Function to swap the values of two variables: x: 1 y: 2 swap x: 2 y: 1

#include void swap1(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } main() { int x = 1, y = 2; swap1(x, y); printf(“%d %d\n”, x, y); } Bad swap

#include void swap1(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } main() { int x = 1, y = 2; swap1(x, y); printf(“%d %d\n”, x, y); } 1 2 x: y: Bad swap

#include void swap1(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } main() { int x = 1, y = 2; swap1(x, y); printf(“%d %d\n”, x, y); } 1 2 x: y: 1 2 a: b: tmp: Bad swap

#include void swap1(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } main() { int x = 1, y = 2; swap1(x, y); printf(“%d %d\n”, x, y); } 1 2 x: y: 1 2 a: b: 1 tmp: Bad swap

#include void swap1(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } main() { int x = 1, y = 2; swap1(x, y); printf(“%d %d\n”, x, y); } 1 2 x: y: 2 2 a: b: 1 tmp: Bad swap

#include void swap1(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } main() { int x = 1, y = 2; swap1(x, y); printf(“%d %d\n”, x, y); } 1 2 x: y: 2 1 a: b: 1 tmp: Bad swap

#include void swap1(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } main() { int x = 1, y = 2; swap1(x, y); printf(“%d %d\n”, x, y); } 1 2 x: y: 2 1 a: b: 1 tmp: Bad swap

#include void swap2(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main() { int x = 1, y = 2; swap2(&x, &y); printf(“%d %d\n”, x, y); } Good swap

#include void swap2(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main() { int x = 1, y = 2; swap2(&x, &y); printf(“%d %d\n”, x, y); } 1 2 x: y: Good swap

#include void swap2(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main() { int x = 1, y = 2; swap2(&x, &y); printf(“%d %d\n”, x, y); } 1 2 x: y: addr of x addr of y a: b: tmp: Good swap

#include void swap2(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main() { int x = 1, y = 2; swap2(&x, &y); printf(“%d %d\n”, x, y); } 1 2 x: y: addr of x addr of y a: b: 1 tmp: Good swap

#include void swap2(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main() { int x = 1, y = 2; swap2(&x, &y); printf(“%d %d\n”, x, y); } 2 2 x: y: addr of x addr of y a: b: 1 tmp: Good swap

#include void swap2(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main() { int x = 1, y = 2; swap2(&x, &y); printf(“%d %d\n”, x, y); } 2 1 x: y: addr of x addr of y a: b: 1 tmp: Good swap

#include void swap2(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main() { int x = 1, y = 2; swap2(&x, &y); printf(“%d %d\n”, x, y); } 2 1 x: y: Good swap

Pointers and Function Arguments Change the value of an actual parameter variable. scanf demystified. char ch; intnumx; float numy; scanf(“%c %d %f”, &ch, &numx, &numy);