330 likes | 738 Views
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). Java and C. Java is derived from C
E N D
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) Differences between Java and C
Java and C • Java is derived from C • Many of its syntactic characteristics are similar to C • However, there are some huge differences Differences between Java and C
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 Differences between Java and C
Very important! 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 Differences between Java and C
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 Differences between Java and C
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 Differences between Java and C
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 Differences between Java and C
Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C
E.g., cases of a switchstatement Similar to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C
Any expression followed by ';' Much like to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C
Sequence of statementsenclosed in "{}" Called a “block” in Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C
switch (expr) if (expr)statement if (expr) statementelse statement Same as in Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C
while (expr) statement do statement while (expr); for (exp1; exp2, exp3) statement Very similar to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C
goto Not present in Java Not allowed in this course break; continue; return expr Very similar to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C
Summary about Statements • Pretty much the same in C/C++ and Java • Be sure to check details in textbooks Differences between Java and C
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! Differences between Java and C
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 Differences between Java and C
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 Differences between Java and C
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 Differences between Java and C
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. Differences between Java and C
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. Differences between Java and C
scanf() Details • K&R Table B-2 (p. 246), D&D Chapter 9 printf() and scanf() are both needed for Lab #1Programming Assignment #1 Differences between Java and C
Summary • Differences and similarities between Java and C • Expressions • Statements • There are lots of other differences • Will be covered during the course Differences between Java and C
Questions? Differences between Java and C