Upload
benedict-lucas
View
223
Download
1
Tags:
Embed Size (px)
Citation preview
3
Type
• The kind of a value is its “type”
• Not all values are of the same kind– For example: can’t logically evaluate 7 + “cat”
ValueVariable
4
Type
• Built-in types: char, int, float• Type modifiers: long, short, const• User-defined types (arrays and records)
• What about “strings”?– Strings are arrays of char (discussed later)
5
Character Representation
• Characters are stored as a small integer• Each character has a unique integer
equivalent specified by its position in the ASCII table (pronounced “ask-key”)
– American Standard Code for Information Interchange
– see Appendix D of D&D
7
Character Representation
• The ASCII values range from 0 to 127– value 0: special character ’\0’
(a.k.a. NUL character)– value 127: special character <DEL>– other special characters: ’\n’ ’\t’ ’\’’ ’\\’ etc.
– various “extended” sets from 128 to 255
8
Variable
• Is a logical name for a container (an actual piece of computer memory for values)
• Have a type associated with them, which tells the computer how to interpret the bits
• Must be declared before use:
[modifiers] <type name> <variable name> ;
[modifiers] <type name> <variable name> = <init value> ;
10
Variable Declaration: Examples
int myID;
char my_initial = ’J’;
Single “forward quotes” or apostrophe (’) rather than
“back quotes” (‘)
12
Variable Declaration: Examples
int myID;
char my_initial = ’J’;
char my_initial = 74 ;
01001010my_initial
13
Variable Declaration: Examples
float commission = 0.05;
short int myHeight = 165; /* cm */
long int mySalary = 100000000000000000000;
long float chanceOfADate = 3e-500;
double chance_of_a_2nd_date = 1.5e-500;
14
float commission = 0.05;
short int myHeight = 165; /* cm */
long int mySalary = 100000000000000000000;
long float chanceOfADate = 3e-500;
double chance_of_a_2nd_date = 1.5e-500;
Variable Declaration: Examples
“Keywords”
15
Keyword
• ...has a special meaning in C
• ...is “case-sensitive”
• ...cannot be used as variable names
• Examples:int, char, long, main, float, double, const, while, for, if, else, return, break, case, switch, default, typedef, struct, etc. (see D&D 2/e Appendix A or D&D 3/e page 545, Figure 15.4)
16
Variable Declaration: Examples
float commission = 0.05;
short int myHeight = 165; /* cm */
long int mySalary = 100000000000000000000;
long float chanceOfADate = 3e-500;
double chance_of_a_2nd_date = 1.5e-500;
“Identifiers”
17
Identifier
• ...is a series of characters consisting of letters, digits and underscores ( _)
• ...cannot begin with a digit
• ...must not be a keyword
• ...is “case-sensitive”
• Examples:sUmoFA, x1, y2, _my_ID_, Main (careful!)
18
Assignment
• Puts a specified value into a specified variable
• Assignment operator: =
<variable name> = <expression> ;
not to be confused with ==
19
Assignment: Examplesfloat x = 2.5 ;
char ch ;
int number ;
ch = ’\n’ ;
number = 4 + 5 ;
/* current value of number is 9. */
number = number * 2;
/* current value of number is now 18. */
20
Assignment
• Value must have a type assignable to the variable
• Value may be automatically converted to fit the new container
• Example:– various.c
21
#include <stdio.h>
/* Do various assignment statements */
int main(){ int integer;
char character;
float floatingPoint;
integer = 33;
character = 33;
floatingPoint = 33;
integer = 'A';
character = 'A';
floatingPoint = 'A';
integer = 33.33;
character = 33.33;
floatingPoint = 33.33;
integer = floatingPoint;
floatingPoint = integer;
return 0;
}
various.c
22
Constant Variables
• ...are variables that don’t vary
• ...may not be assigned to.
• ...must be initialized
const [modifiers] <type> <constant name> = <init value>;
23
Constant Variables: Examples
const int myID = 192;
myID = 666; /* Error! */
const int passMark = 80;
short char pAsSgRaDe = ’P’;
const float e = 3.1415926; /* oops */
const double golden_ratio = 1.61803398874989;
24
Converts an angle from degrees to radians
output “Enter angle in degrees”input angleInDegrees
angleInRadians = / 180 * angleInDegrees
output angleInRadians
#include <stdio.h>
/* Converts an angle in degrees to radians. */
const float PI = 3.1415926;
int main(){ float angleInDegrees; float angleInRadians;
printf("Enter angle in degrees: "); scanf("%f", &angleInDegrees);
angleInRadians = PI / 180 * angleInDegrees;
printf("%f\n", angleInRadians); return 0;}
Example: Constants
25
Example: Constants
“Global” (constant) variable
“Local” variables
more on this later...
#include <stdio.h>
/* Converts an angle in degrees to radians. */
const float PI = 3.1415926;
int main(){ float angleInDegrees; float angleInRadians;
printf("Enter angle in degrees: "); scanf("%f", &angleInDegrees);
angleInRadians = PI / 180 * angleInDegrees;
printf("%f\n", angleInRadians); return 0;}