ch3-UnInitialized (Default initialization)

Chapter_3     Scope Shadow







CONTENTS:     uninit.c     UnInit.cs




uninit.c     TCS, p. 57


#include <stdio.h>

// uninitialized vars
int main()
{
int i;
char c;

printf("uninitialized int: %d\n", i);
printf("uninitialized char: %d\n", c);
}
/*
gcc uninit.c -o uninit
./uninit
uninitialized int: 0
uninitialized char: 0
*/











UnInit.cs


public class UnInit // uninitialized
{
static int i; // uninitialized fields are set to 0
static char c; // or null ('\0')

int ii;
char cc;

public static void Main()
{
// int i; // uninitialized local vars used later
// char c; // (compile error)

// access static fields in a static context, Main():
System.Console.WriteLine("uninitialized static int: " + i);
System.Console.WriteLine("uninitialized static char: " + c);

UnInit uninit = new UnInit();
// System.Console.WriteLine("uninitialized static int: " + uninit.i); // compile error
System.Console.WriteLine("uninitialized int field: " + uninit.ii);
// System.Console.WriteLine("uninitialized static char: "+new UnInit().c); // compile error
System.Console.WriteLine("uninitialized char field: " + new UnInit().cc);
}
}
/*
mcs UnInit.cs
// 4 warnings for uninitialized fields

mono UnInit.exe
uninitialized static int: 0
uninitialized static char: // null
uninitialized int field: 0
uninitialized char field: // null
*/









Chapter_3     Scope BACK_TO_TOP Shadow



Comments

Popular posts from this blog

Contents