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
Post a Comment