Вы находитесь на странице: 1из 52

Basic Data Types

Introduction to Programming
Fundamental Data Types
• A data type defines a set of values and a
set of operations that can be performed on
those values.

DATA TYPE SUGGESTED USAGE


char Text characters such as 'a','b','@' and so on
int Integral numbers such as 1, 2, 3, and so on
float Low/medium precision real numbers
double Medium/high precision real numbers

Introduction to Programming
Fundamental Data Types
• Their respective sizes are not strictly
defined by the standard.
• The compiler vendor selects the most
appropriate size that suits the
architecture of the host computer.
• Hence, compiler- and machine-
dependent

Introduction to Programming
Fundamental Data Types
• Both char and int data types store integral
values.
• Get actual size in bytes of any data type by
using the unary operator (not a function)
sizeof .
parenthesized
Unsigned int
...
char ch;
printf( “%u, %u”, sizeof ch, sizeof(float) );
...
Introduction to Programming
Fundamental Data Types

DATA TYPE VALUE TYPICAL SIZE


char Character 8 bits
int Integer 16 bits
float Real number 32 bits
double Real number 64 bits

Introduction to Programming
The Integer Data Type
• Keyword: int
• Represents whole numbers in C
• Its values typically range from –32768
to 32767 (16 bits)
• Here are some example of integers:
13, -214, +2001, 2002
• An int cannot contain commas. For
example, 2,001 is not a valid integer
value
Introduction to Programming
Type Modifiers
• Modifiers such as signed, unsigned,
long and short are used to alter the
meaning of data types to fit the needs
of various situations more precisely

Introduction to Programming
The Integer Data Type
• signed (default) 16-bit int
• 0000 0000 0000 0000 = 0
• 1000 0000 0000 0000 = -32 768
Sign bit (1 for negative) 15 bits

-32 768 to +32 767

Introduction to Programming
The Integer Data Type
• unsigned 16-bit int

Whole 16 bits

0 to +65 535

Introduction to Programming
The Integer Data Type
• Care must be taken with signed
quantities to ensure that any
arithmetic operations such as addition
or subtraction do not generate an
over- or underflow
• Incrementing 32 767 will result to a
change of sign when using signed 16-
bit int
Introduction to Programming
Type Modifiers for Integral
Quantities
• short int <= int <= long int
• The following are the '%' format
indicators recognized by printf()
'%' formatter Data type(s) Output displayed in following
format
%d char, short, int Decimal
%x char, short, int Hexadecimal
%o char, short, int Octal
%u char, short, int Unsigned decimal
%ld, %lx, %lo, %lu long int Decimal, Hexadecimal, octal or
unsigned decimal, respectively
Introduction to Programming
Type Modifiers for Integral
Quantities
• The following are the '%' format
indicators recognized by scanf()
'%' formatter Appropriate Input recognized in following
data type(s) format
%d, %i, %u, %x, %o int Decimal, decimal, unsigned
decimal, hexadecimal, octal,
respectively
%ld, %li, %lu, %lx, %lo long int -same as above-
%hd, %hi, %hu, %hx, %ho short int -same as above-

Introduction to Programming
Real Number Data Type
• Both float and double data types
represent a real number in C
• A float consists of an optional sign (+ or
-), followed by one or more digits, a
decimal point and one or more further
numbers.
• A double is a special float, which can
store more significant digits.

Introduction to Programming
Real Number Data Type
• Represented as floating-point numbers.
• We often use scientific notation to
represent real numbers.
• In Math, 1.23 x 105 = 123000.0
• In C, 1.23e5 = 123000.0

Introduction to Programming
Real Number Data Type
• Here are some invalid examples of real
number in C.

• 0.1234e /* missing exponent */


• 15e-0.3 /* invalid exponent */
• 34,500.99 /* comma not allowed */
• 150 /* no decimal point */
Introduction to Programming
Real Number Data Type
• Typical representation of a 32-bit float

Sign bit

Exponent Mantissa

Bit number 31 22 0

Introduction to Programming
Real Number Data Type
• Typical representation of a 64-bit
double
Sign bit

Exponent Mantissa

Bit number 63 51 0

Introduction to Programming
Type Modifier for Real Number Data Types

• float <= double <= long double


• Typical size and range of real data types for 32-bit
CPUs:

Data type Size Typical range of values


float 32 bits ±3.4e+38 to ±1.1e-38
OR 1.17549e-38 to 3.40282e+38
double 64 bits ±1.7e+308 to ±2.2e-308
OR 2.22507e-308 to 1.79769e+308
long double 80 bits ±1.1e+4932 to ±3.3e-4932
OR 3.3621e-4932 to 1.18973e+4932

Introduction to Programming
Format Indicators
• For the printf() function

'%' formatter Appropriate Output format


data type(s)
%f Float or double Floating point format
%e Float or double Scientific format
%g Float or double Shortest of '%f' and '%e'
%Lf, %Le, %Lg Long double Floating point, scientific, and
shortest of '%f' and '%e',
respectively

Introduction to Programming
Format Indicators
• For the scanf() function

Format indicator Input format


%f, %lf, %Lf Floating point or scientific format for
a float, double or long double,
respectively
%e, %le, %Le -same as above-
%g, %lg, %Lg -same as above-

Introduction to Programming
The Character Data Type
• Keyword: char
• A char is a letter, digit or symbol
enclosed in single quotes.
• Here are some examples of characters:
‘c’ ‘S’ ‘2’ ‘$’ ‘ ‘
• Note that the space (‘ ‘) is a character
just like any letter or digit

Introduction to Programming
The Character Data Type
• Some non-printing and hard-to-print
characters require an escape sequence
• They consist of a backslash ( \ )
followed by a character.
• For example, a horizontal tab is
represented as ‘\t’ when used in a C
program.

Introduction to Programming
The Character Data Type
Some Non-printing characters
Name of Character Escape
Sequence
Alert \a
Backslash \\
Backspace \b
Carriage return \r
Double quote \”
Introduction to Programming
Data Types
• More on Data Types next time :)

Introduction to Programming
Variables
• Variables are the basic data objects
manipulated in a program
• All variables must be declared before
they are used

Introduction to Programming
Variable Declaration and
Definition
• Declaration is used to name an object
like a variable
• Definition is used to create objects
and reserved memory space.
• Syntax: <data type> <variable list>

Introduction to Programming
Variable Declaration
• C allows multiple variables of the same
type to be defined in one statement
• Example: int height, width;
char choice, index;
• Variables can be distributed among
declarations in any fashion.
• Example:char choice;
char index;
int width;
int height;
Introduction to Programming
Variable Initialization
• A variable may be initialized in its
declaration
• Example: int height = 10, weight = 20;
char choice = ‘Y’, index = ‘a’;
• the expression on the right serves as an
initializer

Introduction to Programming
Constants
• Constants are data values that cannot be
changed during the execution of a
program
• A literal is an unnamed constant used to
specify data
• Example: ‘c’ /* a character literal */
• 5 /* an integer literal */
• 3.1416 /* a float literal */
• “Hello” /* a string literal */
Introduction to Programming
Explicit Constants
• An explicit constant is introduced in much
the same way as a variable, but with its
definition prefixed by the word (or type
qualifier) const.
• They should be initialized during definition.
...
const float pi = 3.14159;
...
Introduction to Programming
Preprocessor Constants
• Another way to designate a constant is
to use the preprocessor command
define
• Syntax: #define <identifier> <value>
• A #define statement allows you to
give names to constants
• A #define statement allows you to
give names to constants
Introduction to Programming
Named Constants
No semicolon
• Example:
#define PI 3.1416
#define EXCHANGE_RATE 52.50
• The action of #define is just like the
search and replace command found in
your text editor

Introduction to Programming
Input/Output Functions
• printf() function - general purpose
output routine
• Format: printf(<format string>, item1,
item2…);
• In its simplest form, it can display a string of
characters enclosed in double-quote marks on
the screen, as in:

printf("You made an error - try again!\n");

Introduction to Programming
Input/Output Functions
• Controlling the Format
• %d - decimal integer.
• %f - float.
• %lf - double
• %e - float in 'exponent' form,
– eg 1.23E+02 ( E+02 means ten to power +2.)
• %c - single character.
• %s - character string.

Introduction to Programming
Input/Output Functions
• scanf() – general-purpose output
routine
• Format:
scanf(<format string>, addr1, addr2…);

Introduction to Programming
Arithmetic Operators
• C supports the arithmetic operators:
+ Addition
- Subtraction
* Multiplication
/ Division
% Modulo

Introduction to Programming
Arithmetic Operators
• Examples:
A = 2 + 3;
B = 2 – 3;
C = 2* 3;
D = 4 / 2;
E = 5 % 2;

Introduction to Programming
Arithmetic Operators
• The modulo (%) operator computes
the remainder of an integer division
• For example, 5 % 2 is 1 because 5
divided by 2 is 2 remainder 1.
• Moreover, 11 % 2 is 1 because 11
divided by 2 is 5 remainder 1.

Introduction to Programming
Arithmetic Operators
Floating Point Arithmetic
• C requires that in a quotient A/B, the
denominator, B, must be nonzero
• Division by zero will cause a program
crash that is why it should be avoided

Introduction to Programming
Arithmetic Operators
Integer Arithmetic
• The quotient of 2 integers is not
necessarily an integer.
• For example, the quotient 3/4 equals a
floating point number 0.75, which is not
an integer.

Introduction to Programming
Arithmetic Operators
Integer Arithmetic
• If you divide an int by an int, the value
you get will be truncated or rounded
down to the largest whole number less
than the result
• For example,
• 10/3 = 3 and 3/4 = 0
Introduction to Programming
Unary Plus and Unary
Minus
• The unary plus (+) operator causes no
change to the quantity that follows
• where the unary minus (-) operator
causes the sign of the following
quantity to be changed.
• Examples: +5 -5

Introduction to Programming
Assignment Operator
• A statement that assigns a value to a
variable is called an assignment
statement and has the format:
variable = expression
• Example: y = 21;
Ch = ‘A’;
x = (2 + 5) * (10 – 6);
net = gross – expenses;
Introduction to Programming
Assignment Operator
Expression Equivalent
k = k + 2; k += 2;
k = k - 2; k -= 2;
k = k * 2; k *= 2;
k = k / 2; k /= 2;

Introduction to Programming
Assignment Operator
• The semantics is specified by
variable op= expression
is equivalent to
variable = variable op expression
• The left side of the equal sign should be
a variable, not an expression
• Thus, the statement
x + 2 = 0;
• is not a valid statement
Introduction to Programming
Precedence and Associativity
• Precedence is used to determine the
order in which different operators in a
complex expression are evaluated
• Associativity is used to determine the
order in which operators with the same
precedence are evaluated in a complex
expression

Introduction to Programming
Precedence and Associativity
Operators Associativity

-- ++ - (unary) Left to right

* / % Left to right

+ - Left to right

= += -= *= /= Right to left

Introduction to Programming
Precedence and Associativity
• Example: The expression 1 + 2 *3 is
equivalent to 1 + (2 * 3)
• Expressions inside parentheses are
evaluated first
• Example: The expression 1 + 2 –3 + 4
–5 is equal to –1 based on the ”left-to-
right” rule of associativity This
expression is equal to
(((1 + 2) – 3) + 4) – 5
Introduction to Programming
Precedence and Associativity
• The unary operators have higher
precedence than the binary plus. And
minus
• In the expression –a * b – c, the first
minus is unary and the second is binary.
• Using the rules of precedence, we see
that the expression is equivalent to
((-a) * b) – c.
Introduction to Programming
Type Conversion
• Implicit type conversion happens
when C automatically converts a type
from one format to another.
• For example, the expression in the
statement x = 2 + 3.5 will evaluate to
in integer value if x is an integer
variable.

Introduction to Programming
Type Conversion
• We can actually “force” the conversion
process to take place
• This is called explicit type
conversion and is done with a unary
operator called a type cast.

• Format: (data type) expression


Introduction to Programming
Type Conversion
• The type cast causes the value of the
expression to be converted to the data
type. For example,
(float) (10 + 2)
evaluates to a floating point number,
12.0

Introduction to Programming

Вам также может понравиться