data type2 c

20
Lectures on Busy Bee Workshop 1 DATA TYPE IN C DATA TYPE IN C This session Outline Tokens Data Types Statements Types

Upload: thirumalaikumar3

Post on 22-Jan-2018

157 views

Category:

Education


0 download

TRANSCRIPT

Lectures on Busy Bee Workshop 1

DATA TYPE IN CDATA TYPE IN C

� This session Outline

� Tokens

� Data Types

� Statements Types

Lectures on Busy Bee Workshop 2

Tokens in CTokens in C

� 5 Tokens1. Keywords2. Identifiers3. Constants/Literals4. Operators5. White Spaces/Other symbols

Basic elements for building a program

Lectures on Busy Bee Workshop 3

Tokens in CTokens in C

� Keywords� These are reserved words of the C language. For example int, float, if, else, for, while etc.

� Identifiers� An Identifier is a sequence of letters and digits, but must start with a

letter. Underscore ( _ ) is treated as a letter. Identifiers are case sensitive. Identifiers are used to name variables, functions etc.

� Valid: Root, _getchar, __sin, x1, x2, x3, x_1, If� Invalid: 324, short, price$, My Name

� Constants/Literals� Constants like 13, ‘a’, 1.3e-5, “Raj” etc.

Integer constant

Character constant

String constantFloat or Real constant

Lectures on Busy Bee Workshop 4

Tokens in CTokens in C String Literals

� A sequence of characters enclosed in double quotes as “…”. For example “13” is a string literal and not number 13. ‘a’ and “a” are different.

� Operators� Arithmetic operators like +, -, *, / ,% etc.� Logical operators like ||, &&, ! etc. and so on.

� White Spaces� Spaces, new lines, tabs, comments ( A sequence of characters enclosed

in /* and */ ) etc. These are used to separate the adjacent identifiers, keywords and constants.

Lectures on Busy Bee Workshop 5

Tokens in C - ExampleTokens in C - Example void main()

{ int a=25; float b=45.0; char c='A'; float sum; sum=a+b+c; printf("Result =%f\n",sum);}

What will be the output?

Tokens

Keywords?

Identifiers?

Constants?

Operators?

Symbols?

Lectures on Busy Bee Workshop 6

Basic Data TypesBasic Data Types

� Data types are used to indicate the nature and size of the data.

Data Type Nature Size Rangechar Character constant 1 Byte – 8 bits -128 to 127int Integer constant 2 Bytes – 16 bits -32768 to 32767float Real constant 4 Bytes – 32 bits 3.4 * (10**-38) to

3.4 * (10**+38)double Real constant 8 Bytes – 64 bits 1.7 * (10**-308) to

1.7 * (10**+308)

Type Modifiers - signed, unsigned, short, and longA type modifier alters the meaning of the base data type to yield a

new type.

Lectures on Busy Bee Workshop 7

Data TypesData Types� Integral data types – Numbers without decimal point

� char / signed char Stored as 8 bits. Unsigned 0 to 255. unsigned char Signed -128 to 127.

� int /signed int Stored as 16 bits. Unsigned 0 to 65535. unsigned int Signed -32768 to 32767.

� short int Same as int.

� long / long int Stored as 32 bits. Unsigned 0 to 4294967295.signed long /signed long int Signed -2147483648 to 2147483647 unsigned long int

All of the type modifiers can be applied to the base type int.signed and unsigned can also be applied to the base type char.

Control String/Format Specifier– %c, %h, %d, %l, %u, %ul

These are not valid constants: ?

25,000 7.1e 4 $200 2.3e-3.4 etc.

Lectures on Busy Bee Workshop 8

Data TypesData Types

� Floating Point Numbers� Floating point numbers are rational numbers. Always signed numbers. i.e

Numbers with decimal point.� float

• Typically stored in 4 bytes(32 bits) • Range - 3.4 * (10**-38) to 3.4 * (10**+38)

� Double• Typically stored in 8 bytes(64 bits)• Range - 1.7 * (10**-308) to 1.7 * (10**+308).

� Long double• Typically stored in 10 bytes (80 bits)

• Range - 3.4 * (10**-4932) to 1.1 * (10**+4932)

� Control String/Format Specif ier– %f, %e, %lf

Lectures on Busy Bee Workshop 9

Data TypesData Types

� Character and string constants‘c’ , a single character in single quotes are stored as char.

Some special character are represented as two characters in single quotes.‘\n’ = newline, ‘\t’= tab, ‘\\’ = backlash, ‘\”’ = double quotes.Char constants also can be written in terms of their ASCII code.‘\060’ = ‘0’ (Decimal code is 48).

A sequence of characters enclosed in double quotes is called a string constant or string literal. For example“Charu”“A”“3/9”“x = 5”

Lectures on Busy Bee Workshop 10

Data TypesData Types

� Character and String data types

� char /signed char/unsigned char• Typically stored in 1 byte(8 bits) • Range – signed -128 to 127, unsigned 0 to 255

� char name[20] – Character Array • Above example occupy 20 bytes to store maximum of 20 characters

of any one name.• char name[5][20] – Store any five name, each name have

maximum of 20 letters each.

� Control String/Format Specif ier– %c, %s

Lectures on Busy Bee Workshop 11

Data Types - SummaryData Types - SummaryData Types Length Rangeunsigned char 8 bits 0 to 255 char 8 bits -128 to 127 unsigned int 16 bits 0 to 65,535 short int 16 bits -32,768 to 32,767 int 16 bits -32,768 to 32,767 enum 16 bits -32,768 to 32,767 unsigned long 32 bits 0 to 4,294,967,295 long 32 bits -2,147,483,648 to 2,147,483,647 float 32 bits 3.4 * (10**-38) to 3.4 * (10**+38) double 64 bits 1.7 * (10**-308) to 1.7 * (10**+308) long double 80 bits 3.4 * (10**-4932) to 1.1 * (10**+4932)

Lectures on Busy Bee Workshop 12

enum & typedef Typeenum & typedef Type

� Enum� Defines a set of constants of type int.� Example:

enum modes { LASTMODE = -1, BW40 = 0, C40, BW80, C80, MONO = 7 };

Here "modes" is the type tag. "LASTMODE", "BW40", "C40", etc. are the constant names. The value of C40 is 1 (BW40 + 1); BW80 = 2 (C40

+ 1), etc.

� typedef� Define a new data type using existing types

� Example :

typedef int Number;

typedef char String[20];

Lectures on Busy Bee Workshop 13

VariablesVariables

� Naming a Variable� Must be a valid identifier.� Must not be a keyword� Names are case sensitive.� Variables are identified by only first 32 characters.� Library commonly uses names beginning with _.� Naming Styles: Uppercase style and Underscore style� lowerLimit lower_limit� incomeTax income_tax

Lectures on Busy Bee Workshop 14

DeclarationsDeclarations

� Declaring a Variable� Each variable used must be declared.� A form of a declaration statement is

data-type var1, var2,…;� Declaration announces the data type of a variable and allocates

appropriate memory location. No initial value (like 0 for integers) should be assumed.

� It is possible to assign an initial value to a variable in the declaration itself.

data-type var = expression;� Examples

int sum = 0;

char newLine = ‘\n’;

float epsilon = 1.0e-6;

Lectures on Busy Bee Workshop 15

Global and Local VariablesGlobal and Local Variables

� Global Variables� These variables are declared outside all functions.

� Life time of a global variable is the entire execution period of the program.

� Can be accessed by any function defined below the declaration, in a file.

/* Compute Area and Perimeter of a circle */

#include <stdio.h>float pi = 3.14159; /* Global */

main() { float rad; /* Local */ printf( “Enter the radius “ ); scanf(“%f” , &rad);

if ( rad > 0.0 ) { float area = pi * rad * rad; float peri = 2 * pi * rad;

printf( “Area = %f\n” , area ); printf( “Peri = %f\n” , peri ); } else printf( “Negative radius\n”);

//printf( “Area = %f\n” , area );}

/* Compute Area and Perimeter of a circle */

#include <stdio.h>float pi = 3.14159; /* Global */

main() { float rad; /* Local */ printf( “Enter the radius “ ); scanf(“%f” , &rad);

if ( rad > 0.0 ) { float area = pi * rad * rad; float peri = 2 * pi * rad;

printf( “Area = %f\n” , area ); printf( “Peri = %f\n” , peri ); } else printf( “Negative radius\n”);

//printf( “Area = %f\n” , area );}

Lectures on Busy Bee Workshop 16

Global and Local VariablesGlobal and Local Variables

� Local Variables� These variables are declared inside some functions.

� Life time of a local variable is the entire execution period of the function in which it is defined.

� Cannot be accessed by any other function.

� In general variables declared inside a block are accessible only in that block.

/* Compute Area and Perimeter of a circle */

#include <stdio.h>float pi = 3.14159; /* Global */

main() { float rad; /* Local */ printf( “Enter the radius “ ); scanf(“%f” , &rad);

if ( rad > 0.0 ) { float area = pi * rad * rad; float peri = 2 * pi * rad;

printf( “Area = %f\n” , area ); printf( “Peri = %f\n” , peri ); } else printf( “Negative radius\n”);

//printf( “Area = %f\n” , area );}

/* Compute Area and Perimeter of a circle */

#include <stdio.h>float pi = 3.14159; /* Global */

main() { float rad; /* Local */ printf( “Enter the radius “ ); scanf(“%f” , &rad);

if ( rad > 0.0 ) { float area = pi * rad * rad; float peri = 2 * pi * rad;

printf( “Area = %f\n” , area ); printf( “Peri = %f\n” , peri ); } else printf( “Negative radius\n”);

//printf( “Area = %f\n” , area );}

Statement TypesStatement Types

� Input Statements – scanf(), getchar(), gets() etc

� Output Statements – printf(), putchar(), puts() etc

� Declaration Statement – Datatype variablelist;

� Assignment Statements - variable=expression;/(=,+=,-+,*=,/=)

� Control statements – if, if …else, nested if, switch

� Iteration statements – for, while, do while

Lectures on Busy Bee Workshop 17

Try this in lab sessionTry this in lab session

� Program for print the memory allocation of all data types.

� Program for print your address label.� Program for add this two number 1,20,000 and

80,500.� Write a program to illustrate enum & typedef.� Rewrite Program 2 for statements illustration (i.e

Get any number <5, 1 time, or 2 time.

Lectures on Busy Bee Workshop 18

� 1. Know the date type size� 2. Flow control, tokens� 3. Size limit, control string� 4. enum & typedef � 5. Statements