23
Intro to C

C-Basics ppt

Embed Size (px)

Citation preview

Page 1: C-Basics ppt

Intro to C

Page 2: C-Basics ppt

Structure of a ‘C’ program

pre-processor directives

global declarations

function prototypes

main()

{

local variables to function main ;

statements associated with function main ;}

f1()

{

local variables to function 1 ;

statements associated with function 1 ;}

f2()

{

local variables to function f2 ;

statements associated with function 2 ;}

Page 3: C-Basics ppt

Case Sensitive

• Case matters in C.

A is not a

Page 4: C-Basics ppt

Structure of my first ‘C’ program

/* This is

a comment */

// This is a one-line comment

# include <stdio.h> /* includes header files */

main() /* Must have a main function. First function executed */

{

printf ("Hello World!"); /* stdio functions */

}

Page 5: C-Basics ppt

Nice to have

• Add plenty of comments (/* */ or //)

• Good layout, not:main(){printf("Hello World\n");}

• Use meaningful variable names

• Initialize your variables

• Use parentheses to avoid confusion:a=(10.0 + 2.0) * (5.0 - 6.0) / 2.0

Page 6: C-Basics ppt

Common variable types

• int - stores integers (-32767 to +32768)

• unsigned int – 0 to 65535

• char – holds 1 byte of data (-127 to 128)

• unsigned char – holds 1 byte (0 to +255)

• long – usually double int (signed)

• unsigned long – positive double int

• float – floating point variable

• double – twice of a floating point variable

• Note: local, global and static variables

Page 7: C-Basics ppt

printf

• printf (“%d”,i);

Usual variable type Display

%c char single character

%d (%i) int signed integer

%e (%E) float or double exponential format

%f float or double signed decimal

%g (%G) float or double use %f or %e as required

%o int unsigned octal value

%p pointer address stored in pointer

%s array of char sequence of characters

%u int unsigned decimal

%x (%X) int unsigned hex value

Page 8: C-Basics ppt

Operators

+ addition

- subtraction

* multiplication

/ division

% mod or remainder (e.g., 2%3 is 2), also called 'modulo'

<< left-shift (e.g., i<<j is i shifted to the left by j bits)

>> right-shift

& bitwise AND

| bitwise OR

^ bitwise exclusive-OR

&& logical AND (returns 1 if both operands are non-zero; else 0)

|| logical OR (returns 1 if either operand is non-zero; else 0)

< less than (e.g., i<j returns 1 if i is less than j)

> greater than

<= less than or equal

>= greater than or equal

== equals

!= does not equal

Page 9: C-Basics ppt

Operators (contd.)

Increment and Decrement Operators

• ++ Increment operator

• -- Decrement Operator

• k++ or k-- (Post-increment/decrement)k = 5;

x = k++; // sets x to 5, then increments k to 6

• ++k or --k (Pre-increment/decrement)k = 5;

x = ++k; // increments k to 6 and then sets x to the

// resulting value, i.e., to 6

Page 10: C-Basics ppt

Functions and Prototypes

• Building blocks of code

• Group relevant and repetitive actions into functions

• Variables are usually local (they exist only inside the function)

type FunctionName(type declared parameter list)

{

statements that make up the function

}

Page 11: C-Basics ppt

Example function#include <stdio.h>

int add1(int);

void main()

{

int x;

x=5;

x=add1(x);

printf("%d“,x);

}

int add1(int i)

{

int y;

y=i+1;

return (y);

}

Returns an integer result

Expects an integer parameter

Page 12: C-Basics ppt

Bitwise Operators

<< left shift

>> right shift

| bitwise OR

& bitwise AND

^ bitwise XOR

~ bitwise NOT

Page 13: C-Basics ppt

Bitwise operators (contd.)

AND: z = x & y

1

1

1

y 0 0 1

0 0

00

0

1

z

x

OR: z = x | y

1

1

1

y 0 0 1

0 1

00

1

1

z

x

NOT: z = ~x

1

0

0

1

z

x

XOR: z = x ^ y

0

1

1

y 0 0 1

0 1

00

1

1

z

x

Page 14: C-Basics ppt

Shift operatorsRight shift by 5 unsigned

Right shift by 5 signed

Page 15: C-Basics ppt

Conditional clauses

if (expression) statement

else statement

if (x==1)

{

printf(“Hello”);

printf (“hi\n”);

}

else

{

printf(“World’);

}

Page 16: C-Basics ppt

Conditional Loops

while (expression) statement

while (x<1000) x++;

while (x<1000)

{

x++;

y=y+10;

}

Page 17: C-Basics ppt

Conditional Loops

do statement while (expression)

x = 0;

do

{

x++;

} while (x<1000);

Page 18: C-Basics ppt

Unconditional Loops

for( initialization; expression; increment )

statement

for (i=0;i<100;i++)

{

printf("Hi.");

}

Page 19: C-Basics ppt

The switch statement

The C switch allows multiple choice of a selection of items at one level of a conditional where it is a far neater way of writing multiple if statements

switch (expression)

{ case item1:

statement1;

break;

case item2:

statement2;

break;

case itemn:

statementn;

break;

default:

statement;

break;

}

Page 20: C-Basics ppt

Arrays

• Declaration:

int x[10];

double y[15];

x[5]=10;

char c[15];

• Note arrays start with 0 element

Page 21: C-Basics ppt

Pointers

• A pointer in C is the address of something

• The unary operator `&' is used to produce the address of an object

int a, *b, c; // b is a pointer

b = &a; // Store in b the address of a

c = *b; // Store in c the value at

// address b (i.e., a)

• Pointers to pointers

• Pointers to functions

Page 22: C-Basics ppt

Character Pointers & Arrays

char *y;

char x[100];

y = &x[0];

y = x; // Does the same as the line above

*(y+1) gives x[1]

*(y+i) gives x[i]

Page 23: C-Basics ppt

Structures

• User defined ‘data type’

struct emprec

{

char name[25];

int age;

int pay;

};

struct emprec employee;

employee.age=32;