Download presentation
Presentation is loading. Please wait.
1
Differences between Java and C
Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition, by Kernighan and Ritchie, Absolute C++, by Walter Savitch, The C++ Programming Language, Special Edition, by Bjarne Stroustrup, and from C: How to Program, 5th and 6th editions, by Deitel and Deitel) CS-2303, A-Term 2012 Differences between Java and C
2
Differences between Java and C
Java is derived from C++, hence from C Many of its syntactic characteristics are similar to C However, there are some huge differences CS-2303, A-Term 2012 Differences between Java and C
3
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 CS-2303, A-Term 2012 Differences between Java and C
4
Differences between Java and C
Relational Operators Relational operators work the same way but return different results:– >, >=, <, <=, ==, != In Java, they return values FALSE and TRUE C/C++ operators 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, , , × 10-34 Very important! CS-2303, A-Term 2012 Differences between Java and C
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 within 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 CS-2303, A-Term 2012 Differences between Java and C
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 CS-2303, A-Term 2012 Differences between Java and C
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 (p. 53) Figure 2.3 in Absolute C++ Note: Absolute C++ uses the term “Display” to mean “figure” CS-2303, A-Term 2012 Differences between Java and C
8
Differences between Java and C
Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement CS-2303, A-Term 2012 Differences between Java and C
9
Differences between Java and C
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 CS-2303, A-Term 2012 Differences between Java and C
10
Differences between Java and C
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 CS-2303, A-Term 2012 Differences between Java and C
11
Differences between Java and C
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 CS-2303, A-Term 2012 Differences between Java and C
12
Differences between Java and C
Statements Statements in C/C++:– Labeled statement Expression statement Compound statement Selection statement Iteration statement Jump statement switch (expr) {cases} if (expr) statement else Same as in Java CS-2303, A-Term 2012 Differences between Java and C
13
Differences between Java and C
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 CS-2303, A-Term 2012 Differences between Java and C
14
Differences between Java and C
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 CS-2303, A-Term 2012 Differences between Java and C
15
Summary about Statements
Pretty much the same in C/C++ and Java Be sure to check details in textbooks and/or reference manuals CS-2303, A-Term 2012 Differences between Java and C
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! CS-2303, A-Term 2012 Differences between Java and C
17
printf() – Print formatted data
printf("string containing '%' specifiers", expr1, expr2, expr3, …); Copy the string, character-by-character, to the output stream 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 CS-2303, A-Term 2012 Differences between Java and C
18
printf() conversion specifiers
K&R, pp 154 & 244 %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 CS-2303, A-Term 2012 Differences between Java and C
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 Size of data type E.g., short, double, float, etc. Examples %6d – print signed decimal number in 6-char field %8.4f – print 64-bit floating point number with four places after decimal point, field width of 8 characters %hu – print an unsigned short integer (i.e., 16 bits in Pentium) CS-2303, A-Term 2012 Differences between Java and C
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 if conversion was not successful Return number of successful conversions Note ampersands CS-2303, A-Term 2012 Differences between Java and C
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 and continue Continue scanning, skipping blanks and tabs Try to match a floating point number. If successful, store in x Stop if unsuccessful or new-line encountered Return number of items stored CS-2303, A-Term 2012 Differences between Java and C
22
Differences between Java and C
scanf() Details K&R Table B-2 (p. 246) printf() and scanf() are both needed for Lab #1 and Programming Assignment #1 CS-2303, A-Term 2012 Differences between Java and C
23
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 CS-2303, A-Term 2012 Differences between Java and C
24
Differences between Java and C
Questions? Next Topic CS-2303, A-Term 2012 Differences between Java and C
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.