A Pointer Experiment. Take out a sheet of scrap paper. Tear it in half. Tear it in half again.

Size: px
Start display at page:

Download "A Pointer Experiment. Take out a sheet of scrap paper. Tear it in half. Tear it in half again."

Transcription

1 Take out a sheet of scrap paper. Tear it in half. Tear it in half again. A Pointer Experiment On one of the quarter sheets, write legibly either: your name, or an integer from 1 to 100. Fold it in half. Fold it in half again. When the box comes around the first time, put the quarter sheet of paper into it. When the box comes around the second time, take a random quarter sheet of paper out of it. If you draw your own name, take out another one and put your name back in. 1

2 More on Pass By Reference in C % cat henryshouse2bad.c int henryshouse; void who(int *house); who(&henryshouse); printf("i m sure that %d people", henryshouse); printf(" live in Henry s house.\n"); void who (int *drneemanshouse) { /* who */ printf("how many people live in Dr Neeman s house? "); scanf("%d", drneemanshouse); printf("i hope you re sure that %d people\n", drneemanshouse); printf(" live in Dr. Neeman s house.\n"); } /* who */ % cc -o henryshouse2bad henryshouse2bad.c % henryshouse2bad How many people live in Dr Neeman s house? 2 I hope you re sure that people live in Dr. Neeman s house. I m sure that 2 people live in Henry s house. 2

3 Correct Pass By Reference in C % cat henryshouse2.c int henryshouse; void who(int *house); who(&henryshouse); printf("i m sure that %d people", henryshouse); printf(" live in Henry s house.\n"); void who (int *drneemanshouse) { /* who */ printf("how many people live in Dr Neeman s house? "); scanf("%d", drneemanshouse); printf("i hope you re sure that %d people\n", *drneemanshouse); printf(" live in Dr. Neeman s house.\n"); } /* who */ % cc -o henryshouse2 henryshouse2.c % henryshouse2 How many people live in Dr Neeman s house? 2 I hope you re sure that 2 people live in Dr. Neeman s house. I m sure that 2 people live in Henry s house. 3

4 What Does All This Mean? As we saw earlier, in C we have a special operator, the ampersand, named the address operator. What does the address operator do? It returns the address of the variable that it s applied to. % cat addr.c double dub = 5.0; float flo = 4.0; int in = 3; printf("dub = %f, &dub = %d\n", dub, &dub); printf("flo = %f, &flo = %d\n", flo, &flo); printf("in = %f, &in = %d\n", in, &in); % cc -o addr addr.c % addr dub = , &dub = flo = , &flo = in = , &in = How does this help us in converting from pass by value to pass by reference? Well, the value of the expression &dub is the address of dub. If we pass the value of &dub, then we re passing the address of dub, so we re passing dub by reference. Eh? 4

5 How Pass by Reference Works in C Okay, so we ve decided that, if we pass the value of &dub, then we re passing dub by reference, because we re passing the address of dub. What s that all about? Well, pass by reference (as in Fortran 90) means that the formal argument refers to the actual argument, in the sense that the formal argument has the same memory address as the actual argument. But pass by value (as in C) means that the value of the actual argument is copied into a new memory location, which is the memory location of the formal argument. So let s say we re doing pass by value. If the value that we pass is the address of the actual argument, then the formal argument knows the memory location of the actual argument. In which case, if we can figure out how to dereference the address contained in the formal argument to use it to get to the contents of that address then we d have the address of the actual argument. Which would be pass by reference. So, what we need is a way to dereference an address. Happily, C provides a dereference operator: * We use the dereference operator with pretty much the same syntax that we use for the address operator: *dub 5

6 Pass By Reference in C Redux % cat henryshouse2.c int henryshouse; void who(int *house); who(&henryshouse); printf("i m sure that %d people", henryshouse); printf(" live in Henry s house.\n"); void who (int *drneemanshouse) { /* who */ printf("how many people live in Dr Neeman s house? "); scanf("%d", drneemanshouse); printf("i hope you re sure that %d people\n", *drneemanshouse); printf(" live in Dr. Neeman s house.\n"); } /* who */ % cc -o henryshouse2 henryshouse2.c % henryshouse2 How many people live in Dr Neeman s house? 2 I hope you re sure that 2 people live in Dr. Neeman s house. I m sure that 2 people live in Henry s house. 6

7 % cat henryshouse2assn.c Pointers int henryshouse; void how_many(int *house); how_many(&henryshouse); printf("i m sure that %d people", henryshouse); printf(" live in Henry s house.\n"); void how_many (int *drneemanshouse) { /* how_many */ *drneemanshouse = 2; printf("i ve decided that %d people\n", *drneemanshouse); printf(" live in Dr. Neeman s house.\n"); } /* how_many */ % cc -o henryshouse2assn henryshouse2assn.c % henryshouse2assn I ve decided that 2 people live in Dr. Neeman s house. I m sure that 2 people live in Henry s house. The name for a variable whose value is a reference (i.e., an address of another variable) is a pointer. It points to the other variable. Notice that, to assign a value to a pointer, we apply the dereference operator * to the pointer: *drneemanshouse = 2; Likewise, to use the value of the variable pointed to by a pointer, we also apply the dereference operator to the pointer: printf("%d people\n", *drneemanshouse); 7

8 Pointer Variables We can actually declare a variable to be a pointer: % cat pointer.c int q; int *p; q = 5; p = &q; printf("q = %d, &q = %d\n", q, &q); printf(" p = %d, *p = %d\n", p, *p); % cc -o pointer pointer.c % pointer q = 5, &q = p = , *p = 5 Okay, that s kind of interesting, but not very useful. But look: % cat alloctest.c float *element; int numelts, i; printf("how many elements do you want? "); scanf("%d", &numelts); element = (float *)malloc(sizeof(float) * numelts); printf("what are the %d elements?\n", numelts); for (i = 0; i < numelts; i++) scanf("%f", &element[i]); printf("the elements are:\n"); for (i = 0; i < numelts; i++) printf("%f\t", element[i]); printf("\n"); % cc -o alloctest alloctest.c % alloctest How many elements do you want? 4 What are the 4 elements? e+7 The elements are:

9 Dynamic Memory Allocation The C standard library function malloc returns a pointer to a place in memory that is as many bytes as you asked for: malloc(sizeof(float) * numelts) returns a pointer to a place in memory big enough to hold numelts variables of type float. In other words, the return value of malloc is a pointer to an array of type float. Interestingly, if you declare an array float static element[100]; you get a pointer, but it points to a static (fixed) location in memory. Whereas, if you declare a pointer and then allocate it float *dynamic element; dynamic element = (float *)malloc(sizeof(float) * numelts); then the pointer points to a dynamic location in memory. 9

10 Dynamic Allocation Example % cat stat_dyn.c #include <math.h> #define MAX_STATIC 100 float static_element[max_static]; float *dynamic_element; int num_static_elts; int num_dynamic_elts; void get_elts(float *element, int numelts, char *name); float mean(float *element, int numelts); /* Static array. */ printf("how many elements in the 1st array"); printf(" (1 to %d)? ", MAX_STATIC); scanf("%d", &num_static_elts); if ((num_static_elts < 1) (num_static_elts > MAX_STATIC)) { printf("error: can t have %d elements\n", num_static_elts); printf(" in the 1st array.\n"); exit(-1); } /* if num_static_elts < 1... */ get_elts(static_element, num_static_elts, "1st"); printf("the mean of the 1st array is %f.\n", mean(static_element, num_static_elts)); /* Dynamic array. */ printf("how many elements in the 2nd array? "); scanf("%d", &num_dynamic_elts); if (num_dynamic_elts < 1) { printf("error: can t have %d elements\n", num_dynamic_elts); printf(" in the 2nd array.\n"); exit(-1); } /* if num_dynamic_elts < 1 */ dynamic_element = (float *)malloc(sizeof(float) * num_dynamic_elts); get_elts(dynamic_element, num_dynamic_elts, "2nd"); printf("the mean of the 2nd array is %f.\n", mean(dynamic_element, num_dynamic_elts)); 10

11 void get_elts (float *element, int numelts, char *name) { /* get_elts */ int e; printf("what are the %d elements", numelts); printf(" in the %s array?\n", name); for (e = 0; e < numelts; e++) scanf("%f", &element[e]); printf("elements of %s array:\n", name); for (e = 0; e < numelts; e++) printf("%f\t", element[e]); printf("\n"); } /* get_elts */ float mean (float *element, int numelts) { /* mean */ float sum; int e; for (e = 0, sum = 0.0; e < numelts; e++) sum += element[e]; return sum / numelts; } /* mean */ % cc -o stat_dyn stat_dyn.c % stat_dyn How many elements in the 1st array (1 to 100)? 4 What are the 4 elements in the 1st array? Elements of 1st array: The mean of the 1st array is How many elements in the 2nd array? 6 What are the 6 elements in the 2nd array? Elements of 2nd array: The mean of the 2nd array is

Pointer Lesson 2 Outline

Pointer Lesson 2 Outline 1. Outline 2. Pass by Reference Bad Example 3. Pass by Reference Good Example 4. Is Pass by Reference Really by Reference? 5. More on the Address Operator & 6. Pass by Reference via Pass by Copy? 7. How

More information

User Defined Functions 2 Outline

User Defined Functions 2 Outline User Defined Functions 2 Outline 1. User Defined Functions 2 Outline 2. Argument Order When Passing Arrays #1 3. Argument Order When Passing Arrays #1 4. Code Reuse Is GOOD GOOD GOOD #1 5. Code Reuse Is

More information

User Defined Functions 1 Outline

User Defined Functions 1 Outline User Defined Functions 1 Outline 1. User Defined Functions 1 Outline 2. Standard Library Not Enough #1 3. Standard Library Not Enough #2 4. Calling a Function Instead 5. Why User-Defined Functions? 6.

More information

M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE

M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be

More information

Array Lesson 2 Outline

Array Lesson 2 Outline 1. Outline 2. Reading Array Values Using for Loop #1 3. Reading Array Values Using for Loop #2 4. for Loop: Like Many Statements #1 5. for Loop: Like Many Statements #2 6. for Loop: Like Many Statements

More information

CS Fall 2007 Homework #5

CS Fall 2007 Homework #5 CS 1313 010 Fall 2007 Homework #5 Quiz to be held in class 9:30-9:45am Mon Feb 19 2007 1. GIVE TWO EXAMPLES of unary arithmetic operations (NOT operators). 2. For the two examples of unary arithmetic operations,

More information

A3-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH 'C' LANGUAGE

A3-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH 'C' LANGUAGE A3-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH 'C' LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be

More information

Engineering program development 6. Edited by Péter Vass

Engineering program development 6. Edited by Péter Vass Engineering program development 6 Edited by Péter Vass Variables When we define a variable with its identifier (name) and type in the source code, it will result the reservation of some memory space for

More information

CS Spring 2018 Homework #11 Quiz to be held in class 9:30-9:45am Mon Apr

CS Spring 2018 Homework #11 Quiz to be held in class 9:30-9:45am Mon Apr CS 1313 010 Spring 2018 Homework #11 Quiz to be held in class 9:30-9:45am Mon Apr 16 2018 1. Suppose that you are using the C standard math library function sqrt in a program that you are writing. GIVE

More information

int marks[10]; // fixed size and fixed address No change in Memory address.

int marks[10]; // fixed size and fixed address No change in Memory address. Dynamic Memory Allocation : Used When we want to allocate memory during run time. int marks[10]; // fixed size and fixed address No change in Memory address. // fixed size. ( no change in size possible

More information

Example: Pointer Basics

Example: Pointer Basics Example: Pointer Basics #include int (void) { float a1, a2; /* Simple variables */ float *p1, *p2, *w; /* Pointers to variables of type float */ a1 = 10.0, a2 = 20.0; printf("after a1 = 10.0;

More information

CS Spring 2018 Homework #5

CS Spring 2018 Homework #5 CS 1313 010 Spring 2018 Homework #5 Quiz to be held in lecture 9:30-9:45am Mon Feb 19 2018 1. HOW CAN YOU TELL that a declaration statement declares a named constant? 2. HOW CAN YOU TELL that a declaration

More information

CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) Introduction to arrays

CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) Introduction to arrays CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) Introduction to arrays 1 What are Arrays? Arrays are our first example of structured data. Think of a book with pages numbered 1,2,...,400.

More information

LAB 6: While and do-while Loops

LAB 6: While and do-while Loops Name: Joe Bloggs LAB 6: While and do-while Loops Exercises 1 while loop /* Program name: lab6ex1.c * Purpose : This program demonstrates use of while loop int num = 0; while( num!= -1 ) printf("please

More information

Computer Programming Unit 3

Computer Programming Unit 3 POINTERS INTRODUCTION Pointers are important in c-language. Some tasks are performed more easily with pointers such as dynamic memory allocation, cannot be performed without using pointers. So it s very

More information

Dynamic memory allocation

Dynamic memory allocation Dynamic memory allocation outline Memory allocation functions Array allocation Matrix allocation Examples Memory allocation functions (#include ) malloc() Allocates a specified number of bytes

More information

Lecture 5: Multidimensional Arrays. Wednesday, 11 February 2009

Lecture 5: Multidimensional Arrays. Wednesday, 11 February 2009 Lecture 5: Multidimensional Arrays CS209 : Algorithms and Scientific Computing Wednesday, 11 February 2009 CS209 Lecture 5: Multidimensional Arrays 1/20 In today lecture... 1 Let s recall... 2 Multidimensional

More information

Array Lesson 1 Outline

Array Lesson 1 Outline Outline 1. Outline 2. mean of a List of Numbers 3. mean: Declarations 4. mean: Greeting, Input 5. mean: Calculation 6. mean: Output 7. mean: Compile, Run 8. mean: 5 Input Values 9. mean: 7 Input Values

More information

Pointers. Part VI. 1) Introduction. 2) Declaring Pointer Variables. 3) Using Pointers. 4) Pointer Arithmetic. 5) Pointers and Arrays

Pointers. Part VI. 1) Introduction. 2) Declaring Pointer Variables. 3) Using Pointers. 4) Pointer Arithmetic. 5) Pointers and Arrays EE105: Software Engineering II Part 6 Pointers page 1 of 19 Part VI Pointers 1) Introduction 2) Declaring Pointer Variables 3) Using Pointers 4) Pointer Arithmetic 5) Pointers and Arrays 6) Pointers and

More information

EM108 Software Development for Engineers

EM108 Software Development for Engineers EE108 Section 6 Pointers page 1 of 20 EM108 Software Development for Engineers Section 6 - Pointers 1) Introduction 2) Declaring Pointer Variables 3) Using Pointers 4) Pointer Arithmetic 5) Pointers and

More information

Lecture06: Pointers 4/1/2013

Lecture06: Pointers 4/1/2013 Lecture06: Pointers 4/1/2013 Slides modified from Yin Lou, Cornell CS2022: Introduction to C 1 Pointers A ointer is a variable that contains the (memory) address of another variable What is a memory address?

More information

Procedural programming with C

Procedural programming with C Procedural programming with C Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 77 Functions Similarly to its mathematical

More information

{C} Programming. Part 1/2 Basics Variables, Conditions, Loops, Arrays, Pointer basics

{C} Programming. Part 1/2 Basics Variables, Conditions, Loops, Arrays, Pointer basics {C Programming Part 1/2 Basics Variables, Conditions, Loops, Arrays, Pointer basics Variables A variable is a container (storage area) to hold data. Eg. Variable name int potionstrength = 95; Variable

More information

Programming Language A

Programming Language A Programming Language A Takako Nemoto (JAIST) 22 October Takako Nemoto (JAIST) 22 October 1 / 28 From Homework 2 Homework 2 1 Write a program calculate something with at least two integer-valued inputs,

More information

Lecture 9 - C Functions

Lecture 9 - C Functions ECET 264 C Programming Language with Applications Lecture 9 C Functions Paul I. Lin Professor of Electrical & Computer Engineering Technology http://www.etcs.ipfw.edu/~lin Lecture 9- Prof. Paul I. Lin

More information

Character Strings Lesson Outline

Character Strings Lesson Outline Outline 1. Outline 2. char Arrays #1 3. char Arrays #2 4. Character Array Example #1 5. Character Array Example #2 6. Character Strings 7. Character String Terminator 8. Character String Assignment Example

More information

BSM540 Basics of C Language

BSM540 Basics of C Language BSM540 Basics of C Language Chapter 9: Functions I Prof. Manar Mohaisen Department of EEC Engineering Review of the Precedent Lecture Introduce the switch and goto statements Introduce the arrays in C

More information

C LANGUAGE A Short Course

C LANGUAGE A Short Course C LANGUAGE A Short Course Alvaro F. M. Azevedo http://www.fe.up.pt/~alvaro January 2002 C Language - Alvaro Azevedo 1 ANSI C Standard (ANSI, ISO) Compiled - efficient Low level / high level Other languages

More information

Arithmetic Expressions Lesson #1 Outline

Arithmetic Expressions Lesson #1 Outline Outline 1. Outline 2. A Less Simple C Program #1 3. A Less Simple C Program #2 4. A Less Simple C Program #3 5. A Less Simple C Program #4 6. A Less Simple C Program: Compile & Run 7. Flowchart for my_add.c

More information

#include <stdio.h> int main() { char s[] = Hsjodi, *p; for (p = s + 5; p >= s; p--) --*p; puts(s); return 0;

#include <stdio.h> int main() { char s[] = Hsjodi, *p; for (p = s + 5; p >= s; p--) --*p; puts(s); return 0; 1. Short answer questions: (a) Compare the typical contents of a module s header file to the contents of a module s implementation file. Which of these files defines the interface between a module and

More information

Programming Language B

Programming Language B Programming Language B Takako Nemoto (JAIST) 7 January Takako Nemoto (JAIST) 7 January 1 / 13 Usage of pointers #include int sato = 178; int sanaka = 175; int masaki = 179; int *isako, *hiroko;

More information

Principles of C and Memory Management

Principles of C and Memory Management COMP281 Lecture 8 Principles of C and Memory Management Dr Lei Shi Last Lecture Pointer Basics Previous Lectures Arrays, Arithmetic, Functions Last Lecture Pointer Basics Previous Lectures Arrays, Arithmetic,

More information

Lecture 02 Summary. C/Java Syntax 1/14/2009. Keywords Variable Declarations Data Types Operators Statements. Functions

Lecture 02 Summary. C/Java Syntax 1/14/2009. Keywords Variable Declarations Data Types Operators Statements. Functions Lecture 02 Summary C/Java Syntax Keywords Variable Declarations Data Types Operators Statements if, switch, while, do-while, for Functions 1 2 By the end of this lecture, you will be able to identify the

More information

C/Java Syntax. January 13, Slides by Mark Hancock (adapted from notes by Craig Schock)

C/Java Syntax. January 13, Slides by Mark Hancock (adapted from notes by Craig Schock) C/Java Syntax 1 Lecture 02 Summary Keywords Variable Declarations Data Types Operators Statements if, switch, while, do-while, for Functions 2 By the end of this lecture, you will be able to identify the

More information

C/Java Syntax. Lecture 02 Summary. Keywords Variable Declarations Data Types Operators Statements. Functions. if, switch, while, do-while, for

C/Java Syntax. Lecture 02 Summary. Keywords Variable Declarations Data Types Operators Statements. Functions. if, switch, while, do-while, for C/Java Syntax 1 Lecture 02 Summary Keywords Variable Declarations Data Types Operators Statements if, switch, while, do-while, for Functions 2 1 By the end of this lecture, you will be able to identify

More information

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS Manish Dronacharya College Of Engineering, Maharishi Dayanand University, Gurgaon, Haryana, India III. Abstract- C Language History: The C programming language

More information

C Pointers. Abdelghani Bellaachia, CSCI 1121 Page: 1

C Pointers. Abdelghani Bellaachia, CSCI 1121 Page: 1 C Pointers 1. Objective... 2 2. Introduction... 2 3. Pointer Variable Declarations and Initialization... 3 4. Reference operator (&) and Dereference operator (*) 6 5. Relation between Arrays and Pointers...

More information

Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance. John Edgar 2

Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance. John Edgar 2 CMPT 125 Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance John Edgar 2 Edit or write your program Using a text editor like gedit Save program with

More information

Arrays. Example: Run the below program, it will crash in Windows (TurboC Compiler)

Arrays. Example: Run the below program, it will crash in Windows (TurboC Compiler) 1 Arrays General Questions 1. What will happen if in a C program you assign a value to an array element whose subscript exceeds the size of array? A. The element will be set to 0. B. The compiler would

More information

COP 3223 Introduction to Programming with C - Study Union - Fall 2017

COP 3223 Introduction to Programming with C - Study Union - Fall 2017 COP 3223 Introduction to Programming with C - Study Union - Fall 2017 Chris Marsh and Matthew Villegas Contents 1 Code Tracing 2 2 Pass by Value Functions 4 3 Statically Allocated Arrays 5 3.1 One Dimensional.................................

More information

a data type is Types

a data type is Types Pointers Class 2 a data type is Types Types a data type is a set of values a set of operations defined on those values in C++ (and most languages) there are two flavors of types primitive or fundamental

More information

Parameter passing. Programming in C. Important. Parameter passing... C implements call-by-value parameter passing. UVic SEng 265

Parameter passing. Programming in C. Important. Parameter passing... C implements call-by-value parameter passing. UVic SEng 265 Parameter passing Programming in C UVic SEng 265 Daniel M. German Department of Computer Science University of Victoria 1 SEng 265 dmgerman@uvic.ca C implements call-by-value parameter passing int a =

More information

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING APS 105 Computer Fundamentals Midterm Examination October 20, 2011 6:15 p.m. 8:00 p.m. (105 minutes) Examiners: J. Anderson, T. Fairgrieve,

More information

M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE

M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be

More information

.. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar..

.. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar.. .. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar.. A Simple Program. simple.c: Basics of C /* CPE 101 Fall 2008 */ /* Alex Dekhtyar */ /* A simple program */ /* This is a comment!

More information

FUNCTIONS POINTERS. Pointers. Functions

FUNCTIONS POINTERS. Pointers. Functions Functions Pointers FUNCTIONS C allows a block of code to be separated from the rest of the program and named. These blocks of code or modules are called functions. Functions can be passed information thru

More information

Computer Programming. C Array is a collection of data belongings to the same data type. data_type array_name[array_size];

Computer Programming. C Array is a collection of data belongings to the same data type. data_type array_name[array_size]; Arrays An array is a collection of two or more adjacent memory cells, called array elements. Array is derived data type that is used to represent collection of data items. C Array is a collection of data

More information

Government Polytechnic Muzaffarpur.

Government Polytechnic Muzaffarpur. Government Polytechnic Muzaffarpur. Name of the Lab: COMPUTER PROGRAMMING LAB (MECH. ENGG. GROUP) Subject Code: 1625408 Experiment: 1 Aim: Programming exercise on executing a C program. If you are looking

More information

CSC 270 Survey of Programming Languages

CSC 270 Survey of Programming Languages CSC 270 Survey of Programming Languages C Lecture 1 : Getting Started: in C #include int { A First Program main(void) header makes input and output available to us printf("this is my first C

More information

Scheme G. Sample Test Paper-I. Course Name : Computer Engineering Group Course Code : CO/CD/CM/CW/IF Semester : Second Subject Tile : Programming in C

Scheme G. Sample Test Paper-I. Course Name : Computer Engineering Group Course Code : CO/CD/CM/CW/IF Semester : Second Subject Tile : Programming in C Sample Test Paper-I Marks : 25 Time:1 Hrs. Q1. Attempt any THREE 09 Marks a) State four relational operators with meaning. b) State the use of break statement. c) What is constant? Give any two examples.

More information

Language comparison. C has pointers. Java has references. C++ has pointers and references

Language comparison. C has pointers. Java has references. C++ has pointers and references Pointers CSE 2451 Language comparison C has pointers Java has references C++ has pointers and references Pointers Values of variables are stored in memory, at a particular location A location is identified

More information

Bil 104 Intiroduction To Scientific And Engineering Computing. Lecture 7

Bil 104 Intiroduction To Scientific And Engineering Computing. Lecture 7 Strings and Clases BIL104E: Introduction to Scientific and Engineering Computing Lecture 7 Manipulating Strings Scope and Storage Classes in C Strings Declaring a string The length of a string Copying

More information

CSC 270 Survey of Programming Languages. What is a Pointer?

CSC 270 Survey of Programming Languages. What is a Pointer? CSC 270 Survey of Programming Languages C Lecture 6 Pointers and Dynamic Arrays What is a Pointer? A pointer is the address in memory of a variable. We call it a pointer because we envision the address

More information

Jagannath Institute of Management Sciences Lajpat Nagar. BCA II Sem. C Programming

Jagannath Institute of Management Sciences Lajpat Nagar. BCA II Sem. C Programming Jagannath Institute of Management Sciences Lajpat Nagar BCA II Sem C Programming UNIT I Pointers: Introduction to Pointers, Pointer Notation,Decalaration and Initialization, Accessing variable through

More information

Programming with Indexed Variables

Programming with Indexed Variables PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 1 Programming with Indexed Variables PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 2 Variable with One Index: 1-Dimensional Array... what(...) { int a[10]

More information

Structured programming

Structured programming Exercises 2 Version 1.0, 22 September, 2016 Table of Contents 1. Simple C program structure................................................... 1 2. C Functions..................................................................

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University C: A High-Level Language! Gives

More information

DECLARAING AND INITIALIZING POINTERS

DECLARAING AND INITIALIZING POINTERS DECLARAING AND INITIALIZING POINTERS Passing arguments Call by Address Introduction to Pointers Within the computer s memory, every stored data item occupies one or more contiguous memory cells (i.e.,

More information

Memory. What is memory? How is memory organized? Storage for variables, data, code etc. Text (Code) Data (Constants) BSS (Global and static variables)

Memory. What is memory? How is memory organized? Storage for variables, data, code etc. Text (Code) Data (Constants) BSS (Global and static variables) Memory Allocation Memory What is memory? Storage for variables, data, code etc. How is memory organized? Text (Code) Data (Constants) BSS (Global and static variables) Text Data BSS Heap Stack (Local variables)

More information

C Program Reviews 2-12

C Program Reviews 2-12 Program 2: From Pseudo Code to C ICT106 Fundamentals of Computer Systems Topic 12 C Program Reviews 2-12 Initialise linecount and alphacount to zero read a character while (character just read is not end

More information

Programming & Data Structure: CS Section - 1/A DO NOT POWER ON THE MACHINE

Programming & Data Structure: CS Section - 1/A DO NOT POWER ON THE MACHINE DS Tutorial: III (CS 11001): Section 1 Dept. of CS&Engg., IIT Kharagpur 1 Tutorial Programming & Data Structure: CS 11001 Section - 1/A DO NOT POWER ON THE MACHINE Department of Computer Science and Engineering

More information

Structured programming. Exercises 3

Structured programming. Exercises 3 Exercises 3 Table of Contents 1. Reminder from lectures...................................................... 1 1.1. Relational operators..................................................... 1 1.2. Logical

More information

Variation of Pointers

Variation of Pointers Variation of Pointers A pointer is a variable whose value is the address of another variable, i.e., direct address of the memory location. Like any variable or constant, you must declare a pointer before

More information

for Loop Lesson 3 Outline

for Loop Lesson 3 Outline Outline 1. Outline 2. for Loop with a float Counter: BAD! 3. float Counter Example #1 4. float Counter Example #2 5. Why float Counters are BAD BAD BAD 6. BAD float Counter Example #1 7. BAD float Counter

More information

Introduction: The Unix shell and C programming

Introduction: The Unix shell and C programming Introduction: The Unix shell and C programming 1DT048: Programming for Beginners Uppsala University June 11, 2014 You ll be working with the assignments in the Unix labs. If you are new to Unix or working

More information

Constants Lesson Outline

Constants Lesson Outline Outline 1. Outline 2. What is a Constant? 3. The Difference Between a Variable and a Constant 4. Categories of Constants: Literal & Named 5. Literal Constants 6. Literal Constant Example Program 7. Named

More information

Dynamic Allocation of Memory Space

Dynamic Allocation of Memory Space C Programming 1 Dynamic Allocation of Memory Space C Programming 2 Run-Time Allocation of Space The volume of data may not be known before the run-time. It provides flexibility in building data structures.

More information

POINTER & REFERENCE VARIABLES

POINTER & REFERENCE VARIABLES Lecture 9 POINTER & REFERENCE VARIABLES Declaring data pointer variables Assignment operations with pointers Referring objects using pointer variables Generic pointers Operations with pointer variables

More information

Dynamic Memory Allocation

Dynamic Memory Allocation Dynamic Memory Allocation The process of allocating memory at run time is known as dynamic memory allocation. C does not Inherently have this facility, there are four library routines known as memory management

More information

Functions. (transfer of parameters, returned values, recursion, function pointers).

Functions. (transfer of parameters, returned values, recursion, function pointers). Functions (transfer of parameters, returned values, recursion, function pointers). A function is a named, independent section of C/C++ code that performs a specific task and optionally returns a value

More information

Create a Program in C (Last Class)

Create a Program in C (Last Class) Create a Program in C (Last Class) Input: three floating point numbers Output: the average of those three numbers Use: scanf to get the input printf to show the result a function to calculate the average

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified by Chris Wilcox, Yashwant Malaiya Colorado State University C: A High-Level Language

More information

Basic Assignment and Arithmetic Operators

Basic Assignment and Arithmetic Operators C Programming 1 Basic Assignment and Arithmetic Operators C Programming 2 Assignment Operator = int count ; count = 10 ; The first line declares the variable count. In the second line an assignment operator

More information

C Programming Language

C Programming Language C Programming Language Arrays & Pointers I Dr. Manar Mohaisen Office: F208 Email: manar.subhi@kut.ac.kr Department of EECE Review of Precedent Class Explain How to Create Simple Functions Department of

More information

Chapter 3: Arrays and More C Functionality

Chapter 3: Arrays and More C Functionality Chapter 3: Arrays and More C Functionality Objectives: (a) Describe how an array is stored in memory. (b) Define a string, and describe how strings are stored. (c) Describe the implications of reading

More information

Engineering 12 - Spring, 1998

Engineering 12 - Spring, 1998 Engineering 12 - Spring, 1998 1. (15 points) Rewrite the following program so that it uses a while loop in place of the for loop. (Note that a part of the new program is already shown at the bottom of

More information

Computer Science & Engineering 150A Problem Solving Using Computers

Computer Science & Engineering 150A Problem Solving Using Computers Computer Science & Engineering 150A Problem Solving Using Computers Lecture 06 - Stephen Scott Adapted from Christopher M. Bourke 1 / 30 Fall 2009 Chapter 8 8.1 Declaring and 8.2 Array Subscripts 8.3 Using

More information

BSM540 Basics of C Language

BSM540 Basics of C Language BSM540 Basics of C Language Chapter 4: Character strings & formatted I/O Prof. Manar Mohaisen Department of EEC Engineering Review of the Precedent Lecture To explain the input/output functions printf()

More information

Arrays and Pointers. CSE 2031 Fall November 11, 2013

Arrays and Pointers. CSE 2031 Fall November 11, 2013 Arrays and Pointers CSE 2031 Fall 2013 November 11, 2013 1 Arrays l Grouping of data of the same type. l Loops commonly used for manipulation. l Programmers set array sizes explicitly. 2 Arrays: Example

More information

Object oriented programming C++

Object oriented programming C++ http://uranchimeg.com Object oriented programming C++ T.Uranchimeg Prof. Dr. Email uranchimeg@must.edu.mn Power Engineering School M.EC203* -- OOP (C++) -- Lecture 07 Subjects Pointers Pointer and array

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University! Gives

More information

Arrays. Here is the generic syntax for an array declaration:

Arrays. Here is the generic syntax for an array declaration: Arrays What is it? An array is a data structure that holds a number of related variables. Thus, an array has a size which is the number of variables it can store. All of these variables must be of the

More information

CS 108 Computing Fundamentals. October/November Array Bootcamp

CS 108 Computing Fundamentals. October/November Array Bootcamp CS 108 Computing Fundamentals October/November 2017 Array Bootcamp For arrays: passing to a function "by value" means passing a single element's "contents" For arrays: no more than one element's contents

More information

MA 511: Computer Programming Lecture 2: Partha Sarathi Mandal

MA 511: Computer Programming Lecture 2: Partha Sarathi Mandal MA 511: Computer Programming Lecture 2: http://www.iitg.ernet.in/psm/indexing_ma511/y10/index.html Partha Sarathi Mandal psm@iitg.ernet.ac.in Dept. of Mathematics, IIT Guwahati Semester 1, 2010-11 Largest

More information

COP 3223 Introduction to Programming with C - Study Union - Fall 2017

COP 3223 Introduction to Programming with C - Study Union - Fall 2017 COP 3223 Introduction to Programming with C - Study Union - Fall 2017 Chris Marsh and Matthew Villegas Contents 1 Code Tracing 2 2 Pass by Value Functions 4 3 Statically Allocated Arrays 5 3.1 One Dimensional.................................

More information

CS4023 Week06 Lab Exercise

CS4023 Week06 Lab Exercise CS4023 Week06 Lab Exercise Lab Objective: In this week s lab we will look at writing a program that reads a large matrix of numbers and then reports all numbers that are equal to a reference value (or

More information

and function calls (including call-by-reference parameters and global variables), but no decision or repetition instructions.

and function calls (including call-by-reference parameters and global variables), but no decision or repetition instructions. 60-140-1 and 60-140-2 ASSIGNMENT #4 SOLUTION Handed Out:Thurs. Oct 22, 2015 for (60-140-01 and 60-140-02) Due: Thurs Oct 29, 2015 for (60-140-01 and 60-140-02) Total: 50 marks Objective of Assignment :

More information

C Language Part 2 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee

C Language Part 2 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee C Language Part 2 (Minor modifications by the instructor) 1 Scope Rules A variable declared inside a function is a local variable Each local variable in a function comes into existence when the function

More information

Introduction to C. Systems Programming Concepts

Introduction to C. Systems Programming Concepts Introduction to C Systems Programming Concepts Introduction to C A simple C Program Variable Declarations printf ( ) Compiling and Running a C Program Sizeof Program #include What is True in C? if example

More information

Programming in C - Part 2

Programming in C - Part 2 Programming in C - Part 2 CPSC 457 Mohammad Reza Zakerinasab May 11, 2016 These slides are forked from slides created by Mike Clark Where to find these slides and related source code? http://goo.gl/k1qixb

More information

Why Pointers. Pointers. Pointer Declaration. Two Pointer Operators. What Are Pointers? Memory address POINTERVariable Contents ...

Why Pointers. Pointers. Pointer Declaration. Two Pointer Operators. What Are Pointers? Memory address POINTERVariable Contents ... Why Pointers Pointers They provide the means by which functions can modify arguments in the calling function. They support dynamic memory allocation. They provide support for dynamic data structures, such

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations

More information

Example: Using Pointers With Functions

Example: Using Pointers With Functions Eample: Using Pointers With Functions Pass b Value and Simulating Pass b Reference for Functions void fun (int a, int b, int c, int *sum, int *diff); int (void) int m =, n = 2, = 0, = 0; printf("pre: m=%d

More information

Numeric Data Types Outline

Numeric Data Types Outline Numeric Data Types Outline 1. Numeric Data Types Outline 2. Data Types 3. Integers in Mathematics 4. Integers in Computing 5. Integers A.K.A. Fixed Point Numbers 6. Declaring int Variables 7. int Data

More information

For questions 4 through 7, select the value assigned to the relevant variable, given the declarations: 3) ) This is not allowed

For questions 4 through 7, select the value assigned to the relevant variable, given the declarations: 3) ) This is not allowed This homework assignment focuses primarily on some of the basic syntax and semantics of C. The answers to the following questions can be determined by consulting a C language reference and/or writing short

More information

Arrays and Pointers. Arrays. Arrays: Example. Arrays: Definition and Access. Arrays Stored in Memory. Initialization. EECS 2031 Fall 2014.

Arrays and Pointers. Arrays. Arrays: Example. Arrays: Definition and Access. Arrays Stored in Memory. Initialization. EECS 2031 Fall 2014. Arrays Arrays and Pointers l Grouping of data of the same type. l Loops commonly used for manipulation. l Programmers set array sizes explicitly. EECS 2031 Fall 2014 November 11, 2013 1 2 Arrays: Example

More information

This is CS50. Harvard University Fall Quiz 0 Answer Key

This is CS50. Harvard University Fall Quiz 0 Answer Key Quiz 0 Answer Key Answers other than the below may be possible. Binary Bulbs. 0. Bit- Sized Questions. 1. Because 0 is non- negative, we need to set aside one pattern of bits (000) for it, which leaves

More information

Character Strings. String-copy Example

Character Strings. String-copy Example Character Strings No operations for string as a unit A string is just an array of char terminated by the null character \0 The null character makes it easy for programs to detect the end char s[] = "0123456789";

More information

Homework #3 CS2255 Fall 2012

Homework #3 CS2255 Fall 2012 Homework #3 CS2255 Fall 2012 MULTIPLE CHOICE 1. The, also known as the address operator, returns the memory address of a variable. a. asterisk ( * ) b. ampersand ( & ) c. percent sign (%) d. exclamation

More information

Characters Lesson Outline

Characters Lesson Outline Outline 1. Outline 2. Numeric Encoding of Non-numeric Data #1 3. Numeric Encoding of Non-numeric Data #2 4. Representing Characters 5. How Characters Are Represented #1 6. How Characters Are Represented

More information