Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System...

24
Differences betwe en Java and C CS-2303, C-Term 20 10 1 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie and from C: How to Program, 5 th and 6 th editions, by Deitel and Deitel)
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    255
  • download

    0

Transcript of Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System...

Page 1: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 1

Differences between Java and C

CS-2303, System Programming Concepts

(Slides include materials from The C Programming Language, 2nd edition, by Kernighan and Ritchie and from C: How to Program, 5th and 6th editions, by Deitel and Deitel)

Page 2: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 2

Java and C

• Java is derived from C

• Many of its syntactic characteristics are similar to C

• However, there are some huge differences

Page 3: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 3

Expressions

• Arithmetic operators are the same:–+, –, *, /, %, ++, ––

• Numerical type conversion is mostly the same– Java spells out divide by zero, NaN (not a

number, etc.)– C & C++ are machine dependent

• Check the textbooks for details

Page 4: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 4

Relational Operators

• Relational operators work the same way but return different results:–

>, >=, <, <=, ==, !=

• In Java, they return values FALSE and TRUE• In C/C++, they return values 0 and 1• In C/C++,

– a value of zero means false

– any value that is not zero means true

– E.g., 1, 5, -1000000, 3.14159, 6.626068 × 10-34

Very important!

Page 5: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 5

Conditional and Bitwise Operators

• Conditional execution operators are same in Java and C/C++:–

||, &&, ? followed by :

• Bitwise operators are same in Java and C/C++:–|, &, ^ for bit-by-bit operations with a word

• Shift operators differ a little bit<< (left shift) is the same

>> (right shift) is machine dependent in C/C++• I.e., whether to fill from left with zeros or sign bits

Page 6: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 6

Assignment and Unary Operators

• Assignment operators work the same:–=, +=, -=, *=, /=, &=, |=, ^=

• The following unary operators are available C/C++ but not in Java

~ invert the bits of a word

* pointer dereference

& pointer creation

(type) cast (i.e., forceable type conversion)

sizeof # of bytes in operand or data type

-> pointer dereference with field selection

Page 7: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 7

Summary about Expressions and Operators

• Pretty much the same in C/C++ and Java

• Be sure to check details in textbook

• Be sure to check operator precedence• Table 2-1 in K&R

• Distributed throughout text in D&D

Page 8: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 8

Statements

• Statements in C/C++:–• Labeled statement

• Expression statement

• Compound statement

• Selection statement

• Iteration statement

• Jump statement

Page 9: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 9

Statements

• Statements in C/C++:–• Labeled statement

• Expression statement

• Compound statement

• Selection statement

• Iteration statement

• Jump statement

E.g., cases of a switchstatement

Similar to Java

Page 10: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 10

Statements

• Statements in C/C++:–• Labeled statement

• Expression statement

• Compound statement

• Selection statement

• Iteration statement

• Jump statement

Any expression followed by ';'

Much like to Java

Page 11: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 11

Statements

• Statements in C/C++:–• Labeled statement

• Expression statement

• Compound statement

• Selection statement

• Iteration statement

• Jump statement

Sequence of statementsenclosed in "{}"

Called a “block” in Java

Page 12: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 12

Statements

• Statements in C/C++:–• Labeled statement

• Expression statement

• Compound statement

• Selection statement

• Iteration statement

• Jump statement

switch (expr)if (expr)statementif (expr) statementelse statement

Same as in Java

Page 13: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 13

Statements

• Statements in C/C++:–• Labeled statement

• Expression statement

• Compound statement

• Selection statement

• Iteration statement

• Jump statement

while (expr) statementdo statement while (expr);for (exp1; exp2, exp3) statement

Very similar to Java

Page 14: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 14

Statements

• Statements in C/C++:–• Labeled statement

• Expression statement

• Compound statement

• Selection statement

• Iteration statement

• Jump statementbreak;continue;return exprVery similar to Java

gotoNot present in JavaNot allowed in this

course

Page 15: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 15

Summary about Statements

• Pretty much the same in C/C++ and Java

• Be sure to check details in textbooks

Page 16: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 16

Formatted Input & Output

• Very different between C and Java

• Very different between C and C++

• Handled by library functions in C• printf()• scanf()• getc()• putc()

• Many others!

Page 17: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 17

printf() – Print formatted data

printf("string containing '%' specifiers",expr1, expr2, expr3, …);

• Copy the string, character-by-character, to the output.

• When the ith '%' is encountered, treat it as a conversion specifier for converting the value of expri

• Copy the converted value to the output per instructions encoded in the conversion specifier

• Return number of characters printed

Page 18: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 18

printf() conversion specifiers

• See K&R, p 154 & 244 or D&D Chapter 9• %d or %i

• Treat expression as a decimal number (with sign)• %u

• Treat expression as unsigned decimal number• %f

• Treat expression as double precision floating point number; print without exponent

• %e or %E• Treat expression as double precision floating point number; print with

exponent (base 10) — scientific notation• %c

• Treat value of expression as the code for a single character• %s

• Treat expression as a pointer to a string

• … Later in this course

Page 19: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 19

printf() conversion specifiers (continued)

• Conversion specifiers may optionally contain

• Right or left alignment in the field• Minimum field width (padded on right or left)• Precision – i.e.,

– Maximum length of string– Number of decimal places of floating point value

• Examples%6d – print signed decimal number in 6-char field%8.4f – print floating point number with four places

after decimal point, field width of 8 characters

Page 20: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 20

scanf() – Scan formatted data

scanf("string containing '%' specifiers",&var1, &var2, &var3, …);

• Scan the input, matching the string character by character.

• When the ith '%' is encountered, treat as a conversion specifier for converting next sequence of characters and storing result in vari

• Copy the converted value to the output per instructions encoded in the conversion specifier

• Stop if input does not match string or conversion not successful

• Return number of successful conversions.

Page 21: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 21

scanf() – Typical Usage

int j;double x;scanf("%d%f", &j, &x);

• Scan the input, skipping blanks and tabs• Try to match a signed integer; if successful, store

result in j• Continue scanning, skipping blanks and tabs• Try to match a floating point number. If successful,

store in x• Return number of items stored.

Page 22: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 22

scanf() Details

• K&R Table B-2 (p. 246), D&D Chapter 9

printf() and scanf() are both needed for Lab #1Programming Assignment #1

Page 23: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 23

Summary

• Differences and similarities between Java and C

• Expressions

• Statements

• There are lots of other differences• Will be covered during the course

Page 24: Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.

Differences between Java and C

CS-2303, C-Term 2010 24

Questions?