Contents. Custom data type struct data type Fixed length memory Alias data type
|
|
- Gwendolyn Wilkinson
- 5 years ago
- Views:
Transcription
1 Complex Data Type
2 Contents Custom data type struct data type Fixed length memory Alias data type
3 Custom data type
4 Terminology primitive data type the data type that don't need to be defined; they are already known by C language. int, float, double, char and pointer custom data type the data type that be defined. come from library or user-defined. predefined data type the custom data type that be defined with in C standard header. FILE, size_t and etc.
5 Custom data type we can define data type in several way include structure data type the data type that is the combination of other data type ( include another custom data type) struct is non-overlapped memory space structure data type union is overlapped memory space structure data type alias data type the data type that don't define anything except its name. it is alias name of other data type.
6 Custom data type using usually, we can use custom data type in the same way that we can do with primitive data type; except: we cannot use arithmetic operations with structure data type or other data type that be defined from it. that means we can: create array of custom data type create pointer of custom data type pass custom data type as argument to function return custom data type from function and so on
7 struct data type
8 struct definition phrase syntax struct [tag_name]{ data-type member_name; data-type another_member_name;... } tag_name can be ignored when use with variable declaration or typedef definition otherwise we can't refer to defined struct variables were declared with in struct are called members
9 struct definition (cont.) example define for use later (; is necessary) struct st01{ long int a; char b; }; single use with variable declaration (tag_name isn't necessary) struct{ long int a; char b; } st_var; // st_var is a variable
10 struct definition (cont.) example (cont.) self reference (tag_name is necessary) struct linked_node{ long int value; struct linked_node *next; }; // self reference must define in pointer term // unless it can't determine the memory size
11 accessing struct member we can access member of struct in variable by using. operator and treat it as normal variable. struct st01{ long int a; char b; }; struct st01 x; x.a = 123; x.b = 'c'; printf("%d, %c\n", x.a, x.b); printf("address of x.b = %p\n", &x.b);
12 Memory allocation of struct consider following code struct st01{ long int a; char b; }; struct st01 x; x.a = 1; x.b = 'c';
13 Memory allocation of struct (cont.) the allocated memory for x variable shown below assume x variable got memory address at 0xAB10 x refer to -> 0xAB10 0xAB11 0xAB12 0xAB13 0xAB14 0xAB15 0xAB16 1 c size of long int (a) size of char (b) size of struct st01 (x)
14 Basics of struct Let us create a few structures suitable for graphics. The basic object is a point, which we will assume has an x coordinate and a y coordinate, both integers.
15 Basics of struct (cont.) The two components can be placed in a structure declared like this: struct point{ int x; int y; }; Now we can declare pt variable with struct point data type struct point pt; pt.x = 4; pt.y = 3; or we can declare and initial it (will be explained later in the end of this section) struct point pt = {4, 3};
16 Basics of struct (cont.) To compute the distance from the origin (0,0) to pt double dist; dist = sqrt( (double)pt.x * pt.x + (double)pt.y * pt.y );
17 Basics of struct (cont.) For now we will create rectangular object that contain two point
18 Basics of struct (cont.) We define rectangular structure with the following struct struct rect { struct point pt1; struct point pt2; }; And we declare screen variable and assign pt1 and pt2 member struct rect screen; struct point start_pt = {4, 3} struct point end_pt = {6, 5}; screen.pt1 = start_pt; screen.pt2 = end_pt;
19 Basics of struct (cont.) Or we can assign x and y directly to screen variable screen.pt1.x = 4; screen.pt1.y = 3; screen.pt2.x = 6; screen.pt2.y = 5; We can't assign struct value in the way of initialization screen.pt1 = {4, 3}; // Syntax error!!! Both previous assignment is verbose code; in the next content will use function to make this process easer.
20 Structures and Functions The first function, makepoint, will take two integers and return a struct point /* makepoint: make a point from x and y components */ struct point makepoint(int x, int y){ struct point temp; temp.x = x; temp.y = y; return temp; }
21 Structures and Functions (cont.) makepoint can now be used to initialize any structure dynamically, or to provide structure arguments to a function: struct rect screen; struct point middle; // middle point of screen screen.pt1 = makepoint(4,3); screen.pt2 = makepoint(6, 5); middle = makepoint((screen.pt1.x + screen.pt2.x)/2, (screen.pt1.y + screen.pt2.y)/2); printf("middle point of (%d, %d), (%d, %d) = (%d, %d)\n", screen.pt1.x, screen.pt1.y, screen.pt2.x, screen.pt2.y, middle.x, middle.y); // middle point of (4, 3), (6, 5) = (5, 4)
22 Structures and Functions (cont.) As another example, the function ptinrect tests whether a point is inside a rectangle, where we have adopted the convention that a rectangle includes its left and bottom sides but not its top and right sides: /* ptinrect: return 1 if p in r, 0 if not */ /* r.pt1 is left-bottom and r.pt2 is right-top */ int ptinrect(struct point p, struct rect r){ return p.x >= r.pt1.x && p.x < r.pt2.x && p.y >= r.pt1.y && p.y < r.pt2.y; }
23 Structures and Functions (cont.) Now we use ptinrect by following code: struct point pt = makepoint(5, 3); printf("(%d, %d) is%s in (%d, %d), (%d,%d)\n", pt.x, pt.y, (ptinrect(pt, screen))? "" : " not", screen.pt1.x, screen.pt1.y, screen.pt2.x, screen.pt2.y); // (5, 3) is in (4, 3), (6,5)
24 Full Example #include <stdio.h> struct point{ int x; int y; }; struct rect{ struct point pt1; struct point pt2; }; //next
25 Full Example (cont.) struct point makepoint(int x, int y); int ptinrect(struct point p, struct rect r); int main(int argc, char *argv[]){ struct rect screen; struct point middle; // middle point of screen // next
26 Full Example (cont.) screen.pt1 = makepoint(4, 3); screen.pt2 = makepoint(6, 5); middle = makepoint((screen.pt1.x + screen.pt2.x)/2, (screen.pt1.y + screen.pt2.y)/2); printf("middle point of (%d, %d), (%d, %d) = (%d, %d)\n", screen.pt1.x, screen.pt1.y, screen.pt2.x, screen.pt2.y, middle.x, middle.y); // next
27 Full Example (cont.) struct point pt = makepoint(5, 3); printf("(%d, %d) is%s in (%d, %d), (%d,%d)\n", pt.x, pt.y, (ptinrect(pt, screen))? "" : " not", screen.pt1.x, screen.pt1.y, screen.pt2.x, screen.pt2.y); } // next return 0;
28 Full Example (cont.) /* makepoint: make a point from x and y components */ struct point makepoint(int x, int y){ struct point temp; temp.x = x; temp.y = y; return temp; } // next
29 Full Example (cont.) /* ptinrect: return 1 if p in r, 0 if not */ /* r.pt1 must be left-bottom and r.pt2 must be right-top */ int ptinrect(struct point p, struct rect r){ return p.x >= r.pt1.x && p.x < r.pt2.x && p.y >= r.pt1.y && p.y < r.pt2.y; }
30 struct initialization struct initialization aka automatic structure we can initial struct in the same way that initial array by using braces and assign value to specific data type struct st01{ long int a; char b; } struct st01 x = {1, 'c'};
31 struct initialization for nested struct sush as stuct rect in the previous example we can use nested braces to assign that value struct rect screen = { {4, 3}, {6, 5} }; the braces just assign value that span memory length so nested braces may be ignore (but cause a warning on compile time) struct rect screen = {4, 3, 5, 6};
32 struct initialization (cont.) Indeed, braces initialization do the same task on both struct and array it assigns given value to span memory length so initialization of 2-dimensional array or multi-dimensional array can ignore nested braces too int ar1[3][2] = {1, 2, 3, 4, 5, 6}; // same as int ar2[3][2] = {{1, 2}, {3, 4}, {5, 6}}; // same as int ar3[][2] = {1, 2, 3, 4, 5, 6}; // this is automatic array // the leftmost dimension size be calculated automatically
33 Notable struct and array have some same advantage they can contain multiple value. but they have some deference too. struct can contain multiple data type, but array can contain just single data type. we can loop through array elements but we can't do that with struct members and keep in your mind struct is data type. array is not data type, it is type of variable.
34 Notable (cont.) bit length in struct definition, we can specific member size in unit of bit by suffix member_name with : number_of_bit struct flags{ unsigned int is_keyword : 1; unsigned int is_extern : 1; unsigned int is_static : 1; }; // used memory is 3 bit of unsinged int // so total allocated memory = sizeof (unsigned int) it often used in system programming or hardware programming but rarely used in application programming.
35 Notable (cont.) for gcc (C compiler that used in this course), we can cast braces constant to assign struct value; but it isn't part of ANSI-C standard (don't use it) screen.pt1 = (struct point){4, 3};
36 Fixed length memory
37 Fixed length memory struct is fixed length memory it uses equal memory length for all variable that have it as data type. stuct st{ long int a; double b; } // used memory = sizeof (long int) + sizeof (double) // = = 12 bytes this behavior is same as primitive data type such as int, char, double and etc. so we can assign struct value by struct st x = {1, 2.1}; struct st y; y = x; // this expression is OK and copy value from x to y
38 Fixed length memory (cont.) we know long that we can't copy array by using = operator long int ar1[4] = {1, 2, 3, 4}; long int ar2[4]; ar2 = ar1; // ERROR: assignment to expression with array type but for struct struct st{ long int ar[4]; } // used memory = 4 * sizeof (long int) = 4 * 4 = 16 bytes struct st x = {{1, 2, 3, 4}}; struct st y; y = x; // this expression works!!! it copy x.ar to y.ar WHY??? just put array in struct and we can copy it.
39 Fixed length memory (cont.) fixed length memory come to handle this, C handle = operator for struct by following process. because it is fixed length memory it guarantees two variable have equal memory length. and each member have the same data type. it will copy memory value byte-by-byte to another; similarly to following code memcpy(&y, &x, sizeof (struct st)); will explain memcpy later in the chapter of dynamic memory allocation that why we can copy array in struct
40 Fixed length memory (cont.) Indeed, we can copy array in the way of C handle struct memcpy(ar2, ar1, 4 * sizeof (long int)); in the previous example case, we know exactly ar1 and ar2 have equal memory length and same data type. but in the other case, it doesn't guarantee that both variables have equal memory length and same data type, so you may got junk data in ar2 variable.
41 Fixed length memory (cont.) In conclusion, because of fixed length memory, we can treat stuct as primitive data type such as: pass them by value to function; unlike array that must be passed by reference return them from function and assign (copy value) them to another variable and so on
42 Alias data type
43 typedef definition syntax typedef existed_data_type alias_name; It must be emphasized that a typedef definition does not create a new data type in any sense; it merely adds a new name for some existing data type
44 typedef definition (cont.) example typedef char int8; typedef short int int16; typedef long int int32; typedef long long int int64; printf("%d, %d, %d, %d\n", (int)sizeof (int8), (int)sizeof (int16), (int)sizeof (int32), (int)sizeof (int64)); // 1, 2, 4, 8
45 typedef definition (cont.) example typedef for struct typedef struct st01{ long int a; char b; } type_st01; // define type_st01 as struct st01 type_st01 x = {1, 'c'};
46 typedef definition (cont.) example typedef name same as tag_name typedef struct st01{ long int a; char b; } st01; // define st01 as struct st01 // we can define typedef name same as struct tag_name st01 x = {1, 'c'}; // with out struct keyword
47 typedef definition (cont.) example typedef for anonymous struct typedef struct{ long int a; char b; } st01; // define st01 as anonymous struct st01 x = {1, 'c'}; // with out struct keyword
48 typedef definition (cont.) example typedef for struct that have self reference must specific tag_name typedef struct linked_node{ long int value; struct linked_node *next; // must use struct } linked_node; // define linked_node as struct linked_node liked_node x; // with out struct keyword
49 References Brian W., Dennis M., C Programming Language: second edition.
Structures. Basics of Structures (6.1) EECS l Now struct point is a valid type. l Defining struct variables: struct point { int x; int y; };
Structures EECS 2031 25 September 2017 1 Basics of Structures (6.1) struct point { int x; int y; keyword struct introduces a structure declaration. point: structure tag x, y: members The same member names
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #49. Structures in C -1
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #49 Structures in C -1 So, in this lecture will talk about structures and C, which is syntactic feature that
More informationOutline. Briefly review the last class Pointers and Structs Memory allocation Linked lists
Outline Briefly review the last class Pointers and Structs Memory allocation Linked lists C Structures and Memory Allocation A struct is a data structure that comprises multiple types, each known as a
More informationDeep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems
Deep C Multifile projects Getting it running Data types Typecasting Memory management Pointers Fabián E. Bustamante, Fall 2004 Multifile Projects Give your project a structure Modularized design Reuse
More informationBBM#101# #Introduc/on#to# Programming#I# Fall$2013,$Lecture$12$
BBM#101# #Introduc/on#to# Programming#I# Fall$2013,$Lecture$12$ Instructors:!Aykut!Erdem,!Erkut!Erdem,!Fuat!Akal! Today#! Structures#! Structure#Defini/ons#! Ini/alizing#Structures#! Accessing#Members#of#Structures#!
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 informationWork relative to other classes
Work relative to other classes 1 Hours/week on projects 2 C BOOTCAMP DAY 1 CS3600, Northeastern University Slides adapted from Anandha Gopalan s CS132 course at Univ. of Pittsburgh Overview C: A language
More informationCOMP 2355 Introduction to Systems Programming
COMP 2355 Introduction to Systems Programming Christian Grothoff christian@grothoff.org http://grothoff.org/christian/ 1 Functions Similar to (static) methods in Java without the class: int f(int a, int
More informationVariables Data types Variable I/O. C introduction. Variables. Variables 1 / 14
C introduction Variables Variables 1 / 14 Contents Variables Data types Variable I/O Variables 2 / 14 Usage Declaration: t y p e i d e n t i f i e r ; Assignment: i d e n t i f i e r = v a l u e ; Definition
More informationC Syntax Out: 15 September, 1995
Burt Rosenberg Math 220/317: Programming II/Data Structures 1 C Syntax Out: 15 September, 1995 Constants. Integer such as 1, 0, 14, 0x0A. Characters such as A, B, \0. Strings such as "Hello World!\n",
More informationWhen you add a number to a pointer, that number is added, but first it is multiplied by the sizeof the type the pointer points to.
Refresher When you add a number to a pointer, that number is added, but first it is multiplied by the sizeof the type the pointer points to. i.e. char *ptr1 = malloc(1); ptr1 + 1; // adds 1 to pointer
More informationELEC 377 C Programming Tutorial. ELEC Operating Systems
ELE 377 Programming Tutorial Outline! Short Introduction! History & Memory Model of! ommon Errors I have seen over the years! Work through a linked list example on the board! - uses everything I talk about
More informationSyntax and Variables
Syntax and Variables What the Compiler needs to understand your program, and managing data 1 Pre-Processing Any line that starts with # is a pre-processor directive Pre-processor consumes that entire line
More informationBLM2031 Structured Programming. Zeyneb KURT
BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help
More informationCS1100 Introduction to Programming
CS1100 Introduction to Programming Structures Madhu Mutyam Department of Computer Science and Engineering Indian Institute of Technology Madras Course Material SD, SB, PSK, NSN, DK, TAG CS&E, IIT M 1 Structures
More information9/5/2018. Overview. The C Programming Language. Transitioning to C from Python. Why C? Hello, world! Programming in C
Overview The C Programming Language (with material from Dr. Bin Ren, William & Mary Computer Science) Motivation Hello, world! Basic Data Types Variables Arithmetic Operators Relational Operators Assignments
More informationSTRUCTURES & FILE IO
STRUCTURES & FILE IO Structures Collections of related variables (aggregates) under one name Can contain variables of different data types Commonly used to define records to be stored in files Combined
More informationThe C Programming Language. (with material from Dr. Bin Ren, William & Mary Computer Science)
The C Programming Language (with material from Dr. Bin Ren, William & Mary Computer Science) 1 Overview Motivation Hello, world! Basic Data Types Variables Arithmetic Operators Relational Operators Assignments
More informationunsigned char memory[] STACK ¼ 0x xC of address space globals function KERNEL code local variables
Graded assignment 0 will be handed out in section Assignment 1 Not that bad Check your work (run it through the compiler) Factorial Program Prints out ENTERING, LEAVING, and other pointers unsigned char
More informationRicardo Rocha. Department of Computer Science Faculty of Sciences University of Porto
Ricardo Rocha Department of Computer Science Faculty of Sciences University of Porto Adapted from the slides Revisões sobre Programação em C, Sérgio Crisóstomo Compilation #include int main()
More informationPrinciples of C and Memory Management
COMP281 Lecture 9 Principles of C and Memory Management Dr Lei Shi Last Lecture Today Pointer to Array Pointer Arithmetic Pointer with Functions struct Storage classes typedef union String struct struct
More informationData Representation and Storage. Some definitions (in C)
Data Representation and Storage Learning Objectives Define the following terms (with respect to C): Object Declaration Definition Alias Fundamental type Derived type Use pointer arithmetic correctly Explain
More informationEL6483: Brief Overview of C Programming Language
EL6483: Brief Overview of C Programming Language EL6483 Spring 2016 EL6483 EL6483: Brief Overview of C Programming Language Spring 2016 1 / 30 Preprocessor macros, Syntax for comments Macro definitions
More informationOnline Judge and C. Roy Chan. January 12, Outline Information Online Judge Introduction to C. CSC2100B Data Structures Tutorial 1
Roy Chan CSC2100B Data Structures Tutorial 1 January 12, 2009 1 / 38 1 Information Your TA team Course Information Assignment 2 Online Judge Writing Your Assignment Program Submitting Your Program Online
More informationFeatures of C. Portable Procedural / Modular Structured Language Statically typed Middle level language
1 History C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. C was originally first implemented on the DEC
More informationChapter 1 & 2 Introduction to C Language
1 Chapter 1 & 2 Introduction to C Language Copyright 2007 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 1 & 2 - Introduction to C Language 2 Outline 1.1 The History
More informationReview of the C Programming Language for Principles of Operating Systems
Review of the C Programming Language for Principles of Operating Systems Prof. James L. Frankel Harvard University Version of 7:26 PM 4-Sep-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights
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 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 informationRoadmap. Java: Assembly language: OS: Machine code: Computer system:
Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine code: Computer system: get_mpg: pushq movq... popq ret %rbp %rsp, %rbp
More informationC: How to Program. Week /Mar/05
1 C: How to Program Week 2 2007/Mar/05 Chapter 2 - Introduction to C Programming 2 Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers
More informationC BOOTCAMP DAY 2. CS3600, Northeastern University. Alan Mislove. Slides adapted from Anandha Gopalan s CS132 course at Univ.
C BOOTCAMP DAY 2 CS3600, Northeastern University Slides adapted from Anandha Gopalan s CS132 course at Univ. of Pittsburgh Pointers 2 Pointers Pointers are an address in memory Includes variable addresses,
More information3/22/2016. Pointer Basics. What is a pointer? C Language III. CMSC 313 Sections 01, 02. pointer = memory address + type
Pointer Basics What is a pointer? pointer = memory address + type C Language III CMSC 313 Sections 01, 02 A pointer can contain the memory address of any variable type A primitive (int, char, float) An
More information10/20/2015. Midterm Topic Review. Pointer Basics. C Language III. CMSC 313 Sections 01, 02. Adapted from Richard Chang, CMSC 313 Spring 2013
Midterm Topic Review Pointer Basics C Language III CMSC 313 Sections 01, 02 1 What is a pointer? Why Pointers? Pointer Caution pointer = memory address + type A pointer can contain the memory address of
More informationStructures. Chapter 6
Chapter 6 Structures As we already discussed, an array can only hold stuff of the same type. In contrast, a C structure is a collection of one or more variables, possibly of different types. It is similar
More informationData Representation and Storage
Data Representation and Storage Learning Objectives Define the following terms (with respect to C): Object Declaration Definition Alias Fundamental type Derived type Use size_t, ssize_t appropriately Use
More informationBinghamton University. CS-211 Fall Syntax. What the Compiler needs to understand your program
Syntax What the Compiler needs to understand your program 1 Pre-Processing Any line that starts with # is a pre-processor directive Pre-processor consumes that entire line Possibly replacing it with other
More informationCMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, FALL 2012
CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, FALL 2012 TOPICS TODAY Project 5 Pointer Basics Pointers and Arrays Pointers and Strings POINTER BASICS Java Reference In Java,
More informationAdministrivia. Introduction to Computer Systems. Pointers, cont. Pointer example, again POINTERS. Project 2 posted, due October 6
CMSC 313 Introduction to Computer Systems Lecture 8 Pointers, cont. Alan Sussman als@cs.umd.edu Administrivia Project 2 posted, due October 6 public tests s posted Quiz on Wed. in discussion up to pointers
More informationCS C Primer. Tyler Szepesi. January 16, 2013
January 16, 2013 Topics 1 Why C? 2 Data Types 3 Memory 4 Files 5 Endianness 6 Resources Why C? C is exteremely flexible and gives control to the programmer Allows users to break rigid rules, which are
More informationINTRODUCTION 1 AND REVIEW
INTRODUTION 1 AND REVIEW hapter SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Programming: Advanced Objectives You will learn: Program structure. Program statements. Datatypes. Pointers. Arrays. Structures.
More informationInput And Output of C++
Input And Output of C++ Input And Output of C++ Seperating Lines of Output New lines in output Recall: "\n" "newline" A second method: object endl Examples: cout
More informationProgramming in C. 3. Pointers and Structures. Dr. Neel Krishnaswami University of Cambridge
Programming in C 3. Pointers and Structures Dr. Neel Krishnaswami University of Cambridge (based on notes from and with thanks to Anil Madhavapeddy, Alan Mycroft, Alastair Beresford and Andrew Moore) Michaelmas
More informationCS 11 C track: lecture 6
CS 11 C track: lecture 6 Last week: pointer arithmetic This week: The gdb program struct typedef linked lists gdb for debugging (1) gdb: the Gnu DeBugger http://courses.cms.caltech.edu/cs11/material /c/mike/misc/gdb.html
More informationIV Unit Second Part STRUCTURES
STRUCTURES IV Unit Second Part Structure is a very useful derived data type supported in c that allows grouping one or more variables of different data types with a single name. The general syntax of structure
More informationUNIT-V. Structures. The general syntax of structure is given below: Struct <tagname> { datatype membername1; datatype membername2; };
UNIT-V Structures Structure is a very useful derived data type supported in c that allows grouping one or more variables of different data types with a single name. The general syntax of structure is given
More informationC Language Summary (Continued)
Chris J Michael cmicha1@lsu.edu 11 September 2008 C Language Summary (Continued) Heavily Influenced by the GNU C Reference Manual: http://www.gnu.org/software/gnu-c-manual/ Q/A -Somebody brought up a nice
More informationM.EC201 Programming language
Power Engineering School M.EC201 Programming language Lecture 13 Lecturer: Prof. Dr. T.Uranchimeg Agenda The union Keyword typedef and Structures What Is Scope? External Variables 2 The union Keyword The
More informationData Storage. August 9, Indiana University. Geoffrey Brown, Bryce Himebaugh 2015 August 9, / 19
Data Storage Geoffrey Brown Bryce Himebaugh Indiana University August 9, 2016 Geoffrey Brown, Bryce Himebaugh 2015 August 9, 2016 1 / 19 Outline Bits, Bytes, Words Word Size Byte Addressable Memory Byte
More informationCharacter 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 informationStrings. Compare these program fragments:
Objects 1 What are objects? 2 C doesn't properly support object oriented programming But it is reasonable to use the word object to mean a structure or array, accessed using a pointer This represents another
More informationProgramming in C. What is C?... What is C?
Programming in C UVic SEng 265 C Developed by Brian Kernighan and Dennis Ritchie of Bell Labs Earlier, in 1969, Ritchie and Thompson developed the Unix operating system We will be focusing on a version
More informationArrays. An array is a collection of several elements of the same type. An array variable is declared as array name[size]
(November 10, 2009 2.1 ) Arrays An array is a collection of several elements of the same type. An array variable is declared as type array name[size] I The elements are numbered as 0, 1, 2... size-1 I
More informationC: Pointers. C: Pointers. Department of Computer Science College of Engineering Boise State University. September 11, /21
Department of Computer Science College of Engineering Boise State University September 11, 2017 1/21 Pointers A pointer is a variable that stores the address of another variable. Pointers are similar to
More informationCSE 303 Lecture 8. Intro to C programming
CSE 303 Lecture 8 Intro to C programming read C Reference Manual pp. Ch. 1, 2.2-2.4, 2.6, 3.1, 5.1, 7.1-7.2, 7.5.1-7.5.4, 7.6-7.9, Ch. 8; Programming in C Ch. 1-6 slides created by Marty Stepp http://www.cs.washington.edu/303/
More informationMechatronics and Microcontrollers. Szilárd Aradi PhD Refresh of C
Mechatronics and Microcontrollers Szilárd Aradi PhD Refresh of C About the C programming language The C programming language is developed by Dennis M Ritchie in the beginning of the 70s One of the most
More informationCMPT 115. C tutorial for students who took 111 in Java. University of Saskatchewan. Mark G. Eramian, Ian McQuillan CMPT 115 1/32
CMPT 115 C tutorial for students who took 111 in Java Mark G. Eramian Ian McQuillan University of Saskatchewan Mark G. Eramian, Ian McQuillan CMPT 115 1/32 Part I Starting out Mark G. Eramian, Ian McQuillan
More informationCSE 333 Midterm Exam Sample Solution 7/29/13
Question 1. (44 points) C hacking a question of several parts. The next several pages are questions about a linked list of 2-D points. Each point is represented by a Point struct containing the point s
More informationCSE 333 Midterm Exam 7/29/13
Name There are 5 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes, closed
More informationReview of the C Programming Language
Review of the C Programming Language Prof. James L. Frankel Harvard University Version of 11:55 AM 22-Apr-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights reserved. Reference Manual for the
More informationCSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community
CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu History and Evolution of Programming Languages 1. Explain the relationship between machine
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 informationProgramming 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 informationFUNCTIONS 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 informationOperating Systems 2INC0 C course Pointer Advanced. Dr. Ir. Ion Barosan
Operating Systems 2INC0 C course Pointer Advanced Dr. Ir. Ion Barosan (i.barosan@tue.nl) Containt Pointers Definition and Initilization Ponter Operators Pointer Arithmetic and Array Calling Functions by
More information8. Structures, File I/O, Recursion. 18 th October IIT Kanpur
8. Structures, File I/O, Recursion 18 th October IIT Kanpur C Course, Programming club, Fall 2008 1 Basic of Structures Definition: A collection of one or more different variables with the same handle
More information5.Coding for 64-Bit Programs
Chapter 5 5.Coding for 64-Bit Programs This chapter provides information about ways to write/update your code so that you can take advantage of the Silicon Graphics implementation of the IRIX 64-bit operating
More informationArrays 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 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 information!"#$% &'($) *+!$ 0!'" 0+'&"$.&0-2$ 10.+3&2),&/3+, %&&/3+, C,-"!.&/+"*0.&('1 :2 %*10% *%7)/ 30'&. 0% /4%./
0!'" 0+'&"$ &0-2$ 10 +3&2),&/3+, #include int main() int i, sum, value; sum = 0; printf("enter ten numbers:\n"); for( i = 0; i < 10; i++ ) scanf("%d", &value); sum = sum + value; printf("their
More informationCMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, SPRING 2013
CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, SPRING 2013 TOPICS TODAY Reminder: MIDTERM EXAM on THURSDAY Pointer Basics Pointers & Arrays Pointers & Strings Pointers & Structs
More informationME964 High Performance Computing for Engineering Applications
ME964 High Performance Computing for Engineering Applications Quick Overview of C Programming January 20, 2011 Dan Negrut, 2011 ME964 UW-Madison There is no reason for any individual to have a computer
More informationProgramming in C. What is C?... What is C?
C Programming in C UVic SEng 265 Developed by Brian Kernighan and Dennis Ritchie of Bell Labs Earlier, in 1969, Ritchie and Thompson developed the Unix operating system We will be focusing on a version
More informationFinal CSE 131B Spring 2004
Login name Signature Name Student ID Final CSE 131B Spring 2004 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 (25 points) (24 points) (32 points) (24 points) (28 points) (26 points) (22 points)
More informationChapter 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 informationProgramming in C UVic SEng 265
Programming in C UVic SEng 265 Daniel M. German Department of Computer Science University of Victoria 1 SEng 265 dmgerman@uvic.ca C Developed by Brian Kernighan and Dennis Ritchie of Bell Labs Earlier,
More informationChapter 2 - Introduction to C Programming
Chapter 2 - Introduction to C Programming 2 Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers 2.4 Memory Concepts 2.5 Arithmetic
More informationProcedures, Parameters, Values and Variables. Steven R. Bagley
Procedures, Parameters, Values and Variables Steven R. Bagley Recap A Program is a sequence of statements (instructions) Statements executed one-by-one in order Unless it is changed by the programmer e.g.
More informationFundamental of Programming (C)
Borrowed from lecturer notes by Omid Jafarinezhad Fundamental of Programming (C) Lecturer: Vahid Khodabakhshi Lecture 3 Constants, Variables, Data Types, And Operations Department of Computer Engineering
More informationData types, variables, constants
Data types, variables, constants Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers 2.4 Memory Concepts 2.5 Arithmetic in C 2.6 Decision
More informationArrays, Pointers and Memory Management
Arrays, Pointers and Memory Management EECS 2031 Summer 2014 Przemyslaw Pawluk May 20, 2014 Answer to the question from last week strct->field Returns the value of field in the structure pointed to by
More informationChapter 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 informationProcedural 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 informationUNIT - I. Introduction to C Programming. BY A. Vijay Bharath
UNIT - I Introduction to C Programming Introduction to C C was originally developed in the year 1970s by Dennis Ritchie at Bell Laboratories, Inc. C is a general-purpose programming language. It has been
More informationPRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
More informationRead: Kernighan & Ritchie
Structures - Chapter 6 CS 241 Data Organization using C Instructor: Joel Castellanos e-mail: joel@unm.edu Web: http://cs.unm.edu/~joel/ 4/13/2017 Read: Kernighan & Ritchie Due Thursday, April 13: 6.1:
More informationArrays 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 informationA Quick Introduction to C Programming
A Quick Introduction to C Programming 1 C Syntax and Hello World What do the < > mean? #include inserts another file..h files are called header files. They contain stuff needed to interface to libraries
More informationChapter 2. Procedural Programming
Chapter 2 Procedural Programming 2: Preview Basic concepts that are similar in both Java and C++, including: standard data types control structures I/O functions Dynamic memory management, and some basic
More informationPointers (continued), arrays and strings
Pointers (continued), arrays and strings 1 Last week We have seen pointers, e.g. of type char *p with the operators * and & These are tricky to understand, unless you draw pictures 2 Pointer arithmetic
More informationAt this time we have all the pieces necessary to allocate memory for an array dynamically. Following our example, we allocate N integers as follows:
Pointers and Arrays Part II We will continue with our discussion on the relationship between pointers and arrays, and in particular, discuss how arrays with dynamical length can be created at run-time
More informationProblem Solving and 'C' Programming
Problem Solving and 'C' Programming Targeted at: Entry Level Trainees Session 10: Functions/Structure and Unions 2007, Cognizant Technology Solutions. All Rights Reserved. The information contained herein
More informationVariables in C. Variables in C. What Are Variables in C? CMSC 104, Fall 2012 John Y. Park
Variables in C CMSC 104, Fall 2012 John Y. Park 1 Variables in C Topics Naming Variables Declaring Variables Using Variables The Assignment Statement 2 What Are Variables in C? Variables in C have the
More informationSo far, system calls have had easy syntax. Integer, character string, and structure arguments.
Pointers Page 1 So far, system calls have had easy syntax Wednesday, September 30, 2015 10:45 AM Integer, character string, and structure arguments. But this is not always true. Today, we begin to explore
More informationArrays and Pointers in C. Alan L. Cox
Arrays and Pointers in C Alan L. Cox alc@rice.edu Objectives Be able to use arrays, pointers, and strings in C programs Be able to explain the representation of these data types at the machine level, including
More informationCS3157: Advanced Programming. Announcement
CS3157: Advanced Programming Lecture #10 Mar 20 Shlomo Hershkop shlomo@cs.columbia.edu Announcement Welcome back from spring break Hope you ve caught up with your courses Have the exams back, will return
More informationSystems Programming. 05. Structures & Trees. Alexander Holupirek
Systems Programming 05. Structures & Trees Alexander Holupirek Database and Information Systems Group Department of Computer & Information Science University of Konstanz Summer Term 2008 Schedule for Today
More informationWhat have we learned about when we learned about function parameters? 1-1
What have we learned about when we learned about function parameters? 1-1 What have we learned about when we learned about function parameters? Call-by-Value also known as scalars (eg. int, double, char,
More informationRule 1-3: Use white space to break a function into paragraphs. Rule 1-5: Avoid very long statements. Use multiple shorter statements instead.
Chapter 9: Rules Chapter 1:Style and Program Organization Rule 1-1: Organize programs for readability, just as you would expect an author to organize a book. Rule 1-2: Divide each module up into a public
More informationC++ Structures Programming Workshop 2 (CSCI 1061U)
C++ Structures Programming Workshop 2 (CSCI 1061U) Faisal Qureshi http://faculty.uoit.ca/qureshi University of Ontario Institute of Technology C++ struct struct keyword can be used to define new data types
More information