Feature |
C |
C++ |
Java |
Comments |
/* This is a C-style
comment */ |
/* C-style comment */
// C++ and Java |
/* C-style comment */
// C++ and Java |
Null pointer |
NULL (preferred)
(needs #include <stdio.h>)
0 (allowed) |
0 (preferred)
NULL (with
#include <stdio.h>) |
null |
Constants |
#define
PI 3.141592653590 |
const double PI =
3.14159265358979; (also allowed in C) |
final double PI =
3.14159265358979;
or Math.PI |
Declarations |
At beginning of a block
(can be used thereafter) |
Anywhere in a block
(can be used thereafter) |
Anywhere in a block
(can be used thereafter) |
Macros |
#define ABS(x)
((x)>0 ? (x) : -(x)) |
inline abs(int x) {
return(x>0 ? x : -x);} |
No macros |
Arrays |
int x[10]; |
int x[10]; |
int[] x =
new int[10]; |
Arrays (dynamic) |
#include <stdlib.h>
int* x = (int *)
malloc(10*sizeof(int)); |
int* x =
new int[10]; |
int[] x =
new int[10]; |
Arrays (references) |
x[i] // subscript
*(x + i) // pointer |
x[i] // subscript
*(x + i) // pointer |
x[i] // subscript only |
Deallocation of dynamic storage |
Must be explicitly done with
free (complicated) |
Must be explicitly done with
delete (very complicated) |
No explicit deallocation, uses garbage collection |
Output |
#include <stdio.h>
printf("%i\n", x[i]); |
#include <iostream>
using std::cout;
cout << x[i] << "/n"; |
System.out.print(
x[i] + "\n"); |
Boolean |
1 or any int != 0 is true
0 is false |
bool a = true;
bool b = false; |
boolean a = true;
boolean b = false; |
while loop do while loop |
int i = 10;
while(i--)
x[i] = 0; |
int i = 10;
while(i--)
x[i] = 0; |
int i = 10;
while(i-- != 0)
x[i] = 0; |
for loop |
int i;
for (i = 0; i < 10; i++)
x[i] = 0; |
for (int i = 0;
i < 10; i++)
x[i] = 0; |
for (int i = 0;
i < 10; i++)
x[i] = 0; |
main function |
int main(void) { }
int main(int argc,
char* argv[]) { } |
int main() { }
int main(int argc,
char* argv[]) { } |
public static void
main(String[] args) {
} |
function prototypes |
If no prototype or definition,
function returns int |
Prototype or definition
required before use |
Only in an interface.
No def required before use. |