|
struct_param.java | struct-param.c |
---|---|
class BankAccount { int accNum; double balance; }; public class struct_param { public static void f( BankAccount x ) { x.accNum = 888; x.balance = 9999.0; } public static void main(String[] argv) { BankAccount a; a = new BankAccount( ); // Create the objects a.accNum = 123; a.balance = 1000.0; System.out.printf("a = (%d, %f)\n", a.accNum, a.balance); f(a); // Pass a /* =================================================== Proof that objects in Java are passed by reference =================================================== */ System.out.printf("a = (%d, %f)\n", a.accNum, a.balance); } } |
#include <stdio.h> struct BankAccount { int accNum; double balance; }; void f( struct BankAccount x ) { x.accNum = 888; x.balance = 9999.0; } int main(int argc, char *argv[]) { struct BankAccount a; a.accNum = 123; a.balance = 1000.0; printf("a = (%d, %f)\n", a.accNum, a.balance); f(a); // Pass a /* =================================================== Proof that objects in C are passed by value =================================================== */ printf("a = (%d, %f)\n", a.accNum, a.balance); } |
Output of the Java program:
cs255-1@aruba (5681)> java struct_param a = (123, 1000.000000) a = (888, 9999.000000) |
Output of the C program:
cs255-1@aruba (5681)> java struct_param a = (123, 1000.000000) a = (123, 1000.000000) |
How to run the program:
|