Pointer arithmetic 20/11/2018. Pointer arithmetic. Pointer arithmetic
|
|
- Barbara Mathews
- 5 years ago
- Views:
Transcription
1 ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Review that pointers store addresses of specific types See that we can add integers to addresses The result depends on the type See that you can also take differences of pointers Again, the result depends on the type Prof. Hiren Patel, Ph.D. Douglas Wilhelm Harder, M.Math. LEL hdpatel@uwaterloo.ca dwharder@uwaterloo.ca 201 by Douglas Wilhelm Harder and Hiren Patel. Some rights reserved. 3 4 Recall that: Pointers are addresses Addresses are positive integers It makes no sense to add two addresses int *p_value_1{new int{42; int *p_value_2{new int{91; std::cout << (p_value_1 + p_value_2) << std::endl; You can, however, ask What is the next address? However, the next address isn t always the next chronologically What address follows 24 Sussex Dr.? The French Embassy at 42 Sussex Dr. What address comes two before 24 Sussex Dr.? The South African High Commission at 15 Sussex Dr. It s like asking What address is 111 Wellington St + 24 Sussex Dr? 1
2 5 6 You can, however, ask What is the next address? However, the next address isn t always the next chronologically What address follows 24 Sussex Dr? The French Embassy at 42 Sussex Dr 25 Sussex Dr does not exist Suppose you have an array: int *a_data{new int[20]{; std::cout << a_data << std::endl; Suppose that 'a_data' is assigned 0x93a3d0 Question: What is the value of a_data + 1? What address comes two before 24 Sussex Dr? The South African High Commission at 15 Sussex Dr 7 Next address Next address Let s try it out: Let s try it with an array of double: int *a_ray{new int[10]; double *a_ray{new double[10]; std::cout << "a_ray == " << a_ray << std::endl; std::cout << "a_ray + 1 == " << (a_ray + 1) << std::endl; std::cout << "a_ray == " << a_ray << std::endl; std::cout << "a_ray + 1 == " << (a_ray + 1) << std::endl; a_ray == 0x1fb1010 a_ray + 1 == 0x1fb1014 a_ray == 0x1af7010 a_ray + 1 == 0x1af701 2
3 9 10 Next address The k th address Recall that an int occupies 4 bytes, while a double occupies bytes The compiler says: a_ray is the address of a double, so the next double is bytes after the current address We can even walk though an array: double *a_ray{new double[6]{0, 1, 2, 3, 4, 42; for ( std::size_t k{0; k < 6; ++k ) { std::cout << (a_ray + k) << " stores the value " << *(a_ray + k) << std::endl; 0x1af0010 stores the value 0 0x1af001 stores the value 1 0x1af0020 stores the value 2 0x1af002 stores the value 3 0x1af0030 stores the value 4 0x1af003 stores the value Array entries Array entries The following two statements are equivalent: a_ray[k] *(a_ray + k) The first says: Access the k th entry of the array a_ray The following two statements are also equivalent: &( a_ray[k] ) a_ray + k The first says: Find the address of the k th entry of the array a_ray The second says: Find the address of k entries beyond a_ray and access that address The second says: Find the address of k entries beyond a_ray In general, the first is much easier to read In this case, the second is easier to read! 3
4 13 14 Array entries Walking through arrays Now you understand why all arrays in C++ start at index 0 a_ray[0] == *(a_ray + 0) and *(a_ray + 0) == *a_ray The decision to start array indices at 0 was entirely practical We can walk through arrays: int *a_ray{new int[6]{0, 1, 2, 3, 4, 42; for ( int *p_ray{a_ray; p_ray < a_ray + 6; ++p_ray ) { std::cout << p_ray << " stores the value " << *p_ray << std::endl; Increment 'p_ray' to the next valid address of an int 0x13a010 stores the value 0 0x13a014 stores the value 1 0x13a01 stores the value 2 0x13a01c stores the value 3 0x13a020 stores the value 4 0x13a024 stores the value 42 Walking through arrays Question: Should you, or should you not delete p_ray? Why? int *a_ray{new int[6]{0, 1, 2, 3, 4, 42; Remember, it makes no sense to ask What is 111 Wellington St + 24 Sussex Dr? On the other hand 1100 S Ocean Blvd Pennsylvania Avenue NW = &hell for ( int *p_ray{a_ray; p_ray < a_ray + 6; ++p_ray ) { std::cout << p_ray << " stores the value " << *p_ray << std::endl; You might ask, however, How many buildings away is Sir Winston Churchill Secondary School from Denis Morris Catholic High School? Given the addresses 101 Glen Morris Dr and 40 Glen Morris Dr: The wrong answer is 61 The right answer is 3 4
5 17 1 Similarly, we may ask about a difference of addresses: double *a_ray{new double[6]{0, 1, 2, 3, 4, 42; double *p_1{&(a_ray[2]); double *p_2{&(a_ray[5]); std::cout << p_1 << " " << p_2 << std::endl; std::cout << (p_1 - p_2) << std::endl; std::cout << (p_2 - p_1) << std::endl; 0xd xd Question: What is the type of a pointer difference? Remember that pointers are addresses The type std::size_t depends on the address size This type is unsigned addresses are unsigned A reasonable approximation would be a signed equivalent of std::size_t Such a type is defined: std::ptrdiff_t Literally, a pointer-difference type This is unique for operators: the return type is different from the types of the operands Not a problem, a function can have a return type that is different from its arguments, too Question: What is the type of a pointer difference? double *a_ray{new double[6]{0, 1, 2, 3, 4, 42; double *p_1{&(a_ray[2]); double *p_2{&(a_ray[5]); std::ptrdiff_t diff = p_1 - p_2; std::cout << diff << std::endl; -3 The memory occupied by a pointer, std::size_t and std::ptrdiff_t are all the same: std::cout << sizeof( int * ) << std::endl; std::cout << sizeof( std::size_t ) << std::endl; std::cout << sizeof( std::ptrdiff_t ) << std::endl; on ecelinux: 5
6 Summary 21 References 22 Following this lesson, you now Know that integers can be added to addresses and the difference depends on the type Understand that array[k] and *(array + k) are equivalent The first, however, is clearer to read Know that we can calculate the difference between addresses [1] No references? Colophon 23 Disclaimer 24 These slides were prepared using the Georgia typeface. Mathematical equations use Times New Roman, and source code is presented using Consolas. The photographs of lilacs in bloom appearing on the title slide and accenting the top of each other slide were taken at the Royal Botanical Gardens on May 27, 201 by Douglas Wilhelm Harder. Please see for more information. These slides are provided for the ECE 150 Fundamentals of Programming course taught at the University of Waterloo. The material in it reflects the authors best judgment in light of the information available to them at the time of preparation. Any reliance on these course slides by any party for any other purpose are the responsibility of such parties. The authors accept no responsibility for damages, if any, suffered by any party as a result of decisions made or actions based on these course slides for any other purpose than that for which it was intended. 6
Insertion sort 20/11/2018. The idea. Example
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Describe the insertion sort algorithm Look at an example Determine how the algorithm work Create a flow chart Implement the algorithm
More informationTemplates 12/11/2018. Redundancy. Redundancy
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Observe that much functionality does not depend on specific types See that normally different types require different function definitions
More informationConsole input 26/09/2018. Background. Background
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Learn how to request data from the console Introduce streams and review whitespace Look at entering characters, integers, floating-point
More informationInteger primitive data types
ECE 150 Fundamentals of Programming Outline 2 Integer primitive data types In this lesson, we will: Learn the representation of unsigned integers Describe how integer addition and subtraction is performed
More informationSelection sort 20/11/2018. The idea. Example
0/11/018 ECE 150 Fundamentals of Programming Outline In this lesson, we will: Describe the selection sort algorithm Look at an example Determine how the algorithm work Create a flow chart Implement the
More informationMain memory 05/10/2018. Main memory. Main memory
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Describe main memory Define bytes and byte-addressable memory Describe how addresses are stored Describe how bytes are given addresses
More informationBinary and hexadecimal numbers
ECE 150 Fundamentals of Programming Outline 2 Binary and hexadecimal numbers In this lesson, we will: Learn about the binary numbers (bits) 0 and 1 See that we can represent numbers in binary Quickly introduce
More informationLinked Lists 28/11/2018. Nodes with member functions. The need for a linked list class
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Create a linked list class Implement numerous member functions Explain how to step through a linked list Linked Lists Douglas Wilhelm
More informationThe call stack and recursion and parameters revisited
ECE 150 Fundamentals of Programming Outline 2 The call stack and recursion and parameters revisited In this lesson, we will: Describe the call stack Step through an example Observe that we can assign to
More informationMember functions 21/11/2018. Accessing member variables. Accessing member variables
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Describe member functions Discuss their usage Explain why this is necessary and useful Prof. Hiren Patel, Ph.D. Douglas Wilhelm Harder,
More informationAnatomy of a program 06/09/2018. Pre-processor directives. In this presentation, we will: Define the components of a program
ECE 150 Fundamentals of Programming Outline 2 Anatomy of a program In this presentation, we will: Define the components of a program Pre-processor directives Statements Blocks of statements Function declarations
More informationPushing at the back 28/11/2018. Problem. Our linked list class
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Understand how to push a new entry onto the back of the linked list Determine how we can speed this up Understand that the cost is
More informationLogical operators 20/09/2018. The unit pulse. Background
ECE 150 Fundamentals of Programming Outline In this lesson, we will: See the need for asking if more than one condition is satisfied The unit pulse function Describe the binary logical AND and OR operators
More informationPolymorphism 02/12/2018. Member functions. Member functions
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Introduce the concept of polymorphism Look at its application in: The Shape class to determine whether or not a point is in the image
More informationDynamic memory allocation
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Revisit static memory allocation (local variables) Introduce dynamic memory allocation Introduce the new and delete operators allocation
More informationThrowing exceptions 02/12/2018. Throwing objects. Exceptions
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: See that we can throw objects Know that there are classes defined in the standard template library These classes allow more information
More informationThe structured programming theorem
ECE 150 Fundamentals of Programming Outline 2 The structured programming theorem In this lesson, we will: Review the statements we have seen to this point Look at some very ugly flow charts apparently
More informationStrings 20/11/2018. a.k.a. character arrays. Strings. Strings
ECE 150 Fundamentals of Programming Outline 2 a.k.a. character arrays In this lesson, we will: Define strings Describe how to use character arrays for strings Look at: The length of strings Copying strings
More informationNumber Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers
Outline of Introduction Administrivia What is computer architecture? What do computers do? Representing high level things in binary Data objects: integers, decimals, characters, etc. Memory locations (We
More informationArithmetic and Bitwise Operations on Binary Data
Arithmetic and Bitwise Operations on Binary Data CSCI 2400: Computer Architecture ECE 3217: Computer Architecture and Organization Instructor: David Ferry Slides adapted from Bryant & O Hallaron s slides
More informationFundamentals of Programming Session 20
Fundamentals of Programming Session 20 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2013 These slides have been created using Deitel s slides Sharif University of Technology Outlines
More informationConsider the actions taken on positive integers when considering decimal values shown in Table 1 where the division discards the remainder.
9.3 Mapping Down to 0,..., M 1 In our previous step, we discussed methods for taking various objects and deterministically creating a 32- bit hash value based on the properties of the object. Hash tables,
More informationby Pearson Education, Inc. All Rights Reserved.
Let s improve the bubble sort program of Fig. 6.15 to use two functions bubblesort and swap. Function bubblesort sorts the array. It calls function swap (line 51) to exchange the array elements array[j]
More informationProgramming in C++ 5. Integral data types
Programming in C++ 5. Integral data types! Introduction! Type int! Integer multiplication & division! Increment & decrement operators! Associativity & precedence of operators! Some common operators! Long
More informationAssist. Prof. Dr. Caner ÖZCAN
Assist. Prof. Dr. Caner ÖZCAN Memory Structure When a variable defined it is stored somewhere in memory. Memory can be thought as block consist of cells. When a variable defined, required number of cell
More informationArithmetic and Bitwise Operations on Binary Data
Arithmetic and Bitwise Operations on Binary Data CSCI 224 / ECE 317: Computer Architecture Instructor: Prof. Jason Fritts Slides adapted from Bryant & O Hallaron s slides 1 Boolean Algebra Developed by
More informationIntermediate Programming, Spring 2017*
600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general
More informationFirst of all, it is a variable, just like other variables you studied
Pointers: Basics What is a pointer? First of all, it is a variable, just like other variables you studied So it has type, storage etc. Difference: it can only store the address (rather than the value)
More informationAt the end of this module, the student should be able to:
INTRODUCTION One feature of the C language which can t be found in some other languages is the ability to manipulate pointers. Simply stated, pointers are variables that store memory addresses. This is
More informationOPPA European Social Fund Prague & EU: We invest in your future.
OPPA European Social Fund Prague & EU: We invest in your future. ECE 250 Algorithms and Data Structures Splay Trees Douglas Wilhelm Harder, M.Math. LEL Department of Electrical and Computer Engineering
More informationOutline. Introduction. Arrays declarations and initialization. Const variables. Character arrays. Static arrays. Examples.
Outline Introduction. Arrays declarations and initialization. Const variables. Character arrays. Static arrays. Examples. 1 Arrays I Array One type of data structures. Consecutive group of memory locations
More informationData Types and Variables in C language
Data Types and Variables in C language Disclaimer The slides are prepared from various sources. The purpose of the slides is for academic use only Operators in C C supports a rich set of operators. Operators
More informationLESSON 5 FUNDAMENTAL DATA TYPES. char short int long unsigned char unsigned short unsigned unsigned long
LESSON 5 ARITHMETIC DATA PROCESSING The arithmetic data types are the fundamental data types of the C language. They are called "arithmetic" because operations such as addition and multiplication can be
More informationTHE EVALUATION OF OPERANDS AND ITS PROBLEMS IN C++
Proceedings of the South Dakota Academy of Science, Vol. 85 (2006) 107 THE EVALUATION OF OPERANDS AND ITS PROBLEMS IN C++ Dan Day and Steve Shum Computer Science Department Augustana College Sioux Falls,
More informationDECLARAING 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 informationFundamentals of Programming Session 19
Fundamentals of Programming Session 19 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2013 These slides have been created using Deitel s slides Sharif University of Technology Outlines
More informationCSCI-1200 Data Structures Fall 2017 Lecture 5 Pointers, Arrays, & Pointer Arithmetic
CSCI-1200 Data Structures Fall 2017 Lecture 5 Pointers, Arrays, & Pointer Arithmetic Review from Letctures 3 & 4 C++ class syntax, designing classes, classes vs. structs; Passing comparison functions to
More informationCSCI 2212: Intermediate Programming / C Chapter 15
... /34 CSCI 222: Intermediate Programming / C Chapter 5 Alice E. Fischer October 9 and 2, 25 ... 2/34 Outline Integer Representations Binary Integers Integer Types Bit Operations Applying Bit Operations
More informationComputer Programming
Computer Programming Dr. Deepak B Phatak Dr. Supratik Chakraborty Department of Computer Science and Engineering Session: Introduction to Pointers Part 1 Dr. Deepak B. Phatak & Dr. Supratik Chakraborty,
More informationOperators in C. Staff Incharge: S.Sasirekha
Operators in C Staff Incharge: S.Sasirekha Operators An operator is a symbol which helps the user to command the computer to do a certain mathematical or logical manipulations. Operators are used in C
More informationSlide Set 2. for ENCM 335 in Fall Steve Norman, PhD, PEng
Slide Set 2 for ENCM 335 in Fall 2018 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary September 2018 ENCM 335 Fall 2018 Slide Set 2 slide
More informationPhysics 234: Computational Physics
Physics 234: Computational Physics In-class Midterm Exam Friday, February 12, 2010 Student s Name: Fill-in-the-blank and multiple choice questions (20 points) Mark your answers on the exam sheet in blue
More informationUnit 3. Operators. School of Science and Technology INTRODUCTION
INTRODUCTION Operators Unit 3 In the previous units (unit 1 and 2) you have learned about the basics of computer programming, different data types, constants, keywords and basic structure of a C program.
More informationESC101N Fundamentals of Computing
ESC101N Fundamentals of Computing Arnab Bhattacharya arnabb@iitk.ac.in Indian Institute of Technology, Kanpur http://www.iitk.ac.in/esc101/ 1 st semester, 2010-11 Tue, Wed, Fri 0800-0900 at L7 Arnab Bhattacharya
More informationGoals of this Lecture
C Pointers Goals of this Lecture Help you learn about: Pointers and application Pointer variables Operators & relation to arrays 2 Pointer Variables The first step in understanding pointers is visualizing
More informationObject 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 informationLooping and Counting. Lecture 3 Hartmut Kaiser hkaiser/fall_2012/csc1254.html
Looping and Counting Lecture 3 Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html Abstract First we ll discuss types and type safety. Then we will modify the program
More informationProgramming for Electrical and Computer Engineers. Pointers and Arrays
Programming for Electrical and Computer Engineers Pointers and Arrays Dr. D. J. Jackson Lecture 12-1 Introduction C allows us to perform arithmetic addition and subtraction on pointers to array elements.
More informationLooping and Counting. Lecture 3. Hartmut Kaiser hkaiser/fall_2011/csc1254.html
Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2011/csc1254.html 2 Abstract First we ll discuss types and type safety. Then we will modify the program we developed last time (Framing
More informationC++ For Science and Engineering Lecture 15
C++ For Science and Engineering Lecture 15 John Chrispell Tulane University Wednesday September 29, 2010 Function Review Recall the basics you already know about functions. Provide a function definition.
More informationSlide Set 14. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary
Slide Set 14 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary November 2016 ENCM 339 Fall 2016 Slide Set 14 slide 2/35
More informationA flow chart is a graphical or symbolic representation of a process.
Q1. Define Algorithm with example? Answer:- A sequential solution of any program that written in human language, called algorithm. Algorithm is first step of the solution process, after the analysis of
More informationC# MOCK TEST C# MOCK TEST II
http://www.tutorialspoint.com C# MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to C#. You can download these sample mock tests at your local machine
More information2/5/2018. Expressions are Used to Perform Calculations. ECE 220: Computer Systems & Programming. Our Class Focuses on Four Types of Operator in C
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 220: Computer Systems & Programming Expressions and Operators in C (Partially a Review) Expressions are Used
More informationSigned/Unsigned Integer Arithmetic in C. Vineel Kovvuri
Signed/Unsigned Integer Arithmetic in C Vineel Kovvuri http://vineelkovvuri.com Contents 1 Introduction 2 2 How signed-ness is represented in the hardware? 2 3 How signed-ness is interpreted in assembly?
More informationStructures, Unions Alignment, Padding, Bit Fields Access, Initialization Compound Literals Opaque Structures Summary. Structures
Structures Proseminar C Grundlagen und Konzepte Michael Kuhn Research Group Scientific Computing Department of Informatics Faculty of Mathematics, Informatics und Natural Sciences University of Hamburg
More informationData Representation 1
1 Data Representation Outline Binary Numbers Adding Binary Numbers Negative Integers Other Operations with Binary Numbers Floating Point Numbers Character Representation Image Representation Sound Representation
More informationInformatics Ingeniería en Electrónica y Automática Industrial
Informatics Ingeniería en Electrónica y Automática Industrial Operators and expressions in C Operators and expressions in C Numerical expressions and operators Arithmetical operators Relational and logical
More informationTutorial-2a: First steps with C++ programming
Programming for Scientists Tutorial 2a 1 / 18 HTTP://WWW.HEP.LU.SE/COURSES/MNXB01 Introduction to Programming and Computing for Scientists Tutorial-2a: First steps with C++ programming Programming for
More informationSlide 1 CS 170 Java Programming 1 Expressions Duration: 00:00:41 Advance mode: Auto
CS 170 Java Programming 1 Expressions Slide 1 CS 170 Java Programming 1 Expressions Duration: 00:00:41 What is an expression? Expression Vocabulary Any combination of operators and operands which, when
More information1/31/2017. Expressions are Used to Perform Calculations. ECE 120: Introduction to Computing. Five Arithmetic Operators on Numeric Types
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 120: Introduction to Computing Expressions are Used to Perform Calculations Let s talk in more detail starting
More information9/2/2016. Expressions are Used to Perform Calculations. ECE 120: Introduction to Computing. Five Arithmetic Operators on Numeric Types
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 120: Introduction to Computing Expressions are Used to Perform Calculations Let s talk in more detail starting
More informationOperators and Expressions:
Operators and Expressions: Operators and expression using numeric and relational operators, mixed operands, type conversion, logical operators, bit operations, assignment operator, operator precedence
More informationCS242 COMPUTER PROGRAMMING
CS242 COMPUTER PROGRAMMING I.Safa a Alawneh Variables Outline 2 Data Type C++ Built-in Data Types o o o o bool Data Type char Data Type int Data Type Floating-Point Data Types Variable Declaration Initializing
More informationOperators & Expressions
Operators & Expressions Operator An operator is a symbol used to indicate a specific operation on variables in a program. Example : symbol + is an add operator that adds two data items called operands.
More informationECE 250 / CS 250 Computer Architecture. C to Binary: Memory & Data Representations. Benjamin Lee
ECE 250 / CS 250 Computer Architecture C to Binary: Memory & Data Representations Benjamin Lee Slides based on those from Alvin Lebeck, Daniel Sorin, Andrew Hilton, Amir Roth, Gershon Kedem Administrivia
More informationQUIZ. What is wrong with this code that uses default arguments?
QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code
More informationSlide Set 5. for ENCM 369 Winter 2014 Lecture Section 01. Steve Norman, PhD, PEng
Slide Set 5 for ENCM 369 Winter 2014 Lecture Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Winter Term, 2014 ENCM 369 W14 Section
More informationPointers and Strings. Adhi Harmoko S, M.Komp
Pointers and Strings Adhi Harmoko S, M.Komp Introduction Pointers Powerful, but difficult to master Simulate call-by-reference Close relationship with arrays and strings Pointer Variable Declarations and
More informationMain Program. C Programming Notes. #include <stdio.h> main() { printf( Hello ); } Comments: /* comment */ //comment. Dr. Karne Towson University
C Programming Notes Dr. Karne Towson University Reference for C http://www.cplusplus.com/reference/ Main Program #include main() printf( Hello ); Comments: /* comment */ //comment 1 Data Types
More informationVARIABLES AND TYPES CITS1001
VARIABLES AND TYPES CITS1001 Scope of this lecture Types in Java the eight primitive types the unlimited number of object types Values and References The Golden Rule Primitive types Every piece of data
More informationPersonal SE. Computer Memory Addresses C Pointers
Personal SE Computer Memory Addresses C Pointers Computer Memory Organization Memory is a bucket of bytes. Computer Memory Organization Memory is a bucket of bytes. Each byte is 8 bits wide. Computer Memory
More informationCSE 1001 Fundamentals of Software Development 1. Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018
CSE 1001 Fundamentals of Software Development 1 Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018 Identifiers, Variables and Data Types Reserved Words Identifiers in C Variables and Values
More informationOutline. Performing Computations. Outline (cont) Expressions in C. Some Expression Formats. Types for Operands
Performing Computations C provides operators that can be applied to calculate expressions: tax is 8.5% of the total sale expression: tax = 0.085 * totalsale Need to specify what operations are legal, how
More informationPart X. Advanced C ++
Part X Advanced C ++ topics Philip Blakely (LSC) Advanced C++ 158 / 217 References The following are highly regarded books. They are fairly in-depth, and I haven t read them in their entirity. However,
More informationA Fast Review of C Essentials Part I
A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types
More informationOutline. Introduction. Pointer variables. Pointer operators. Calling functions by reference. Using const with pointers. Examples.
Outline Introduction. Pointer variables. Pointer operators. Calling functions by reference. Using const with pointers. Examples. 1 Introduction A pointer is a variable that contains a memory address Pointers
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #29 Arrays in C
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #29 Arrays in C (Refer Slide Time: 00:08) This session will learn about arrays in C. Now, what is the word array
More informationWhat the CPU Sees Basic Flow Control Conditional Flow Control Structured Flow Control Functions and Scope. C Flow Control.
C Flow Control David Chisnall February 1, 2011 Outline What the CPU Sees Basic Flow Control Conditional Flow Control Structured Flow Control Functions and Scope Disclaimer! These slides contain a lot of
More informationPIC 10A Pointers, Arrays, and Dynamic Memory Allocation. Ernest Ryu UCLA Mathematics
PIC 10A Pointers, Arrays, and Dynamic Memory Allocation Ernest Ryu UCLA Mathematics Pointers A variable is stored somewhere in memory. The address-of operator & returns the memory address of the variable.
More informationOutline. Computer Memory Structure Addressing Concept Introduction to Pointer Pointer Manipulation Summary
Pointers 1 2 Outline Computer Memory Structure Addressing Concept Introduction to Pointer Pointer Manipulation Summary 3 Computer Memory Revisited Computers store data in memory slots Each slot has an
More informationGO - OPERATORS. This tutorial will explain the arithmetic, relational, logical, bitwise, assignment and other operators one by one.
http://www.tutorialspoint.com/go/go_operators.htm GO - OPERATORS Copyright tutorialspoint.com An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations.
More informationPointers and Arrays 1
Pointers and Arrays 1 Pointers and Arrays When an array is declared, The compiler allocates sufficient amount of storage to contain all the elements of the array in contiguous memory locations The base
More informationUnderstanding Pointers
Division of Mathematics and Computer Science Maryville College Pointers and Addresses Memory is organized into a big array. Every data item occupies one or more cells. A pointer stores an address. A pointer
More informationWalther Zwart - Meeting C Clean Integral Code
Walther Zwart - Meeting C++ 2018 Clean Integral Code About me walther.zwart@gmail.com > 30 years of programming 20 years of C++ 3rd time at MeetingCPP 5 years at Optiver About me About Optiver Market Maker
More informationFundamentals of Programming Session 20
Fundamentals of Programming Session 20 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2013 These slides have been created using Deitel s slides Sharif University of Technology Outlines
More informationIntermediate Programming, Spring 2017*
600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general
More informationIntroduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language
Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup starting in 1979 based on C Introduction to C++ also
More informationIntroduction to C: Pointers
Introduction to C: Pointers Nils Moschüring PhD Student (LMU) Nils Moschüring PhD Student (LMU), Introduction to C: Pointers 1 1 Introduction 2 Pointers Basics Useful: Function
More informationLecture 5: Outline. I. Multi- dimensional arrays II. Multi- level arrays III. Structures IV. Data alignment V. Linked Lists
Lecture 5: Outline I. Multi- dimensional arrays II. Multi- level arrays III. Structures IV. Data alignment V. Linked Lists Multidimensional arrays: 2D Declaration int a[3][4]; /*Conceptually 2D matrix
More informationPointers and Strings Prentice Hall, Inc. All rights reserved.
Pointers and Strings 1 sizeof operator Pointer Expressions and Pointer Arithmetic Relationship Between Pointers and Arrays Arrays of Pointers Case Study: Card Shuffling and Dealing Simulation sizeof operator
More informationPointer Casts and Data Accesses
C Programming Pointer Casts and Data Accesses For this assignment, you will implement a C function similar to printf(). While implementing the function you will encounter pointers, strings, and bit-wise
More informationCharacter Set. The character set of C represents alphabet, digit or any symbol used to represent information. Digits 0, 1, 2, 3, 9
Character Set The character set of C represents alphabet, digit or any symbol used to represent information. Types Uppercase Alphabets Lowercase Alphabets Character Set A, B, C, Y, Z a, b, c, y, z Digits
More informationCSCI-1200 Data Structures Fall 2018 Lecture 5 Pointers, Arrays, & Pointer Arithmetic
CSCI-1200 Data Structures Fall 2018 Lecture 5 Pointers, Arrays, & Pointer Arithmetic Announcements: Test 1 Information Test 1 will be held Thursday, Sept 20th, 2018 from 6-7:50pm Students will be randomly
More informationIntroduction to C++ with content from
Introduction to C++ with content from www.cplusplus.com 2 Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup
More informationSlide Set 1 (corrected)
Slide Set 1 (corrected) for ENCM 369 Winter 2018 Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary January 2018 ENCM 369 Winter 2018
More informationProgramming Fundamentals. With C++ Variable Declaration, Evaluation and Assignment 1
300580 Programming Fundamentals 3 With C++ Variable Declaration, Evaluation and Assignment 1 Today s Topics Variable declaration Assignment to variables Typecasting Counting Mathematical functions Keyboard
More informationVariables and Constants
HOUR 3 Variables and Constants Programs need a way to store the data they use. Variables and constants offer various ways to work with numbers and other values. In this hour you learn: How to declare and
More informationUniversity of Waterloo Department of Electrical and Computer Engineering ECE 250 Data Structures and Algorithms. Final Examination
ECE 25 Data Structures and Algorithms University of Waterloo Department of Electrical and Computer Engineering ECE 25 Data Structures and Algorithms Instructor: Douglas Wilhelm Harder Time: 2.5 hours Aides:
More informationComputers Programming Course 5. Iulian Năstac
Computers Programming Course 5 Iulian Năstac Recap from previous course Classification of the programming languages High level (Ada, Pascal, Fortran, etc.) programming languages with strong abstraction
More information