Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from."— Presentation transcript:

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 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)

2 Differences between Java and C CS-2303, C-Term 20102 Java and C Java is derived from C Many of its syntactic characteristics are similar to C However, there are some huge differences

3 Differences between Java and C CS-2303, C-Term 20103 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

4 Differences between Java and C CS-2303, C-Term 20104 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!

5 Differences between Java and C CS-2303, C-Term 20105 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

6 Differences between Java and C CS-2303, C-Term 20106 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

7 Differences between Java and C CS-2303, C-Term 20107 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

8 Differences between Java and C CS-2303, C-Term 20108 Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement

9 Differences between Java and C CS-2303, C-Term 20109 Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement E.g., cases of a switch statement Similar to Java

10 Differences between Java and C CS-2303, C-Term 201010 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

11 Differences between Java and C CS-2303, C-Term 201011 Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement Sequence of statements enclosed in "{}" Called a “block” in Java

12 Differences between Java and C CS-2303, C-Term 201012 Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement switch (expr) if (expr)statement if (expr) statement else statement Same as in Java

13 Differences between Java and C CS-2303, C-Term 201013 Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement while (expr) statement do statement while (expr); for (exp1; exp2, exp3) statement Very similar to Java

14 Differences between Java and C CS-2303, C-Term 201014 Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement break; continue; return expr Very similar to Java goto Not present in Java Not allowed in this course

15 Differences between Java and C CS-2303, C-Term 201015 Summary about Statements Pretty much the same in C/C++ and Java Be sure to check details in textbooks

16 Differences between Java and C CS-2303, C-Term 201016 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!

17 Differences between Java and C CS-2303, C-Term 201017 printf() – Print formatted data printf("string containing '%' specifiers", expr 1, expr 2, expr 3, …); 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 expr i Copy the converted value to the output per instructions encoded in the conversion specifier Return number of characters printed

18 Differences between Java and C CS-2303, C-Term 201018 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

19 Differences between Java and C CS-2303, C-Term 201019 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

20 Differences between Java and C CS-2303, C-Term 201020 scanf() – Scan formatted data scanf("string containing '%' specifiers", &var 1, &var 2, &var 3, …); 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 var i 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.

21 Differences between Java and C CS-2303, C-Term 201021 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.

22 Differences between Java and C CS-2303, C-Term 201022 scanf() Details K&R Table B-2 (p. 246), D&D Chapter 9 printf() and scanf() are both needed for Lab #1 Programming Assignment #1

23 Differences between Java and C CS-2303, C-Term 201023 Summary Differences and similarities between Java and C Expressions Statements There are lots of other differences Will be covered during the course

24 Differences between Java and C CS-2303, C-Term 201024 Questions?


Download ppt "Differences between Java and C CS-2303, C-Term 20101 Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from."

Similar presentations


Ads by Google