programming languages and paradigms the c programming language

Post on 14-Dec-2015

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programming Languagesand Paradigms

The C Programming Language

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 2

Components of a C Program

A C program is a collection of function definitions, (global) variable definitions, declarations and compiler directives

Functions ( e.g., void push( char c ) { … } ) Variables ( e.g., int top; char Store[MAX]; ) Declarations ( e.g., void push( char c ); ) Compiler directives ( e.g., #define MAX 100

#include <stdio.h> )

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 3

Built-in Data Types in C

int, char, float Short and long versions of these data

types short, long, double, long double, …

No explicit boolean type in C Control structures that require conditions

expect an int value 0 => false, non-zero => true

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 4

Composite Types Arrays

Collection of elements of the same type Declaration: type varname[integer-value];

Structures Collection of elements of different types or with

different names Declaration: struct strname { field

declarations… }; struct strname varname;

dot operator: varname.field

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 5

Pointers Address operator: &

De-referencing operator: * Pointers and arrays

Array names as addresses Pointer arithmetic Array access []

Dynamic allocation malloc, free, NULL

Multi-dimensional arrays Pointers and structures: the -> operator

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 6

Strings String: sequence of characters

(stored in a character array) The null (‘\0’) terminator String literals ( e.g., “hello” ) String functions (<string.h>)

strcpy strlen strcmp strcat …

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 7

Statements expression-statement

Expression followed by a semicolon expr; where expr consists of variables,

constants, operators, parentheses, function calls

Block or compound-statement 0 or more statements enclosed in { } Declarations may precede statements

{ decl decl decl … stmt stmt stmt }

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 8

Statements (decision) if-statement

Condition bounded by parentheses Numeric expression expected in condition Optional else clause

switch-statement Can be viewed as a special kind of block Has entry points (through the case labels) and

exit points (through break; statements ) switch expression should be of ordinal type

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 9

Statements (loops) while-statement

Loop test at the beginning of the loop Loop body may not be executed at all

do-while-statement Loop test at the end of the loop Loop body executed at least once

for-statement for( expr1; expr2; expr3 ) stmt Has an equivalent while-loop formulation Used if there is an explicit loop control variable

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 10

Statements (others) break;

Breaks out of the nearest enclosing loop or switch continue;

Proceeds to the loop test return-statement

return expr; Provides value return by a function Without expr (if return type is void), the statement

simply causes control to be returned to the caller

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 11

Functions

Function definition:

Return type Name Parameters Body (block)

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 12

Parameter Passing

In C, all parameters are pass by value Pointers and the address operator

enable a function to update data outside of the function But the parameter passed (the address) is

still a value

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 13

Module Organization in C Suppose mod.c is a module containing

functions to be used by other C source files A mod.h file contains function prototypes and

#define directives An #include directive is placed in the file using

the module (i.e., #include “mod.h”). (Do you need to include it in mod.c?)

Modules can be separately compiled and then linked with other modules to produce an executable

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 14

Scope Names in a { … } block are limited to that

block Local variables

Formal parameters of a function are local to the function body/block

Declarations outside the functions are accessible from other functions extern declaration: compiler permits use of

variables before they are defined static definition: variable use restricted to

functions within file

6/15/2005Copyright 2005, by the authors of these slides, and Ateneo

de Manila University. All rights reserved. L2: C

Slide 15

Library Functions The C standard library I/O, math, string functions and others Prototypes are in:

<stdio.h> <math.h> <string.h> <stdlib.h> …

top related