1
,• Structure of a program
– See ~zxu2/Public/ACMS40212/C++_basics/basics.cpp
Compilation Stages
– To see how the code looks after pre-processing, type
icc –A –E basics.cpp
2
,• Aggregates
1. Variables of the same type can be put into arrays or multi-D arrays, e.g.,
char letters[50], values[50][30][60];
Remark: C has no subscript checking; if you go to the end of an array, C won't
warn you.
2. Variables of different types can be grouped into a structure.
typedef struct {
int age;
int height;
char surname[30];
} person;
…
person fred;
fred.age = 20;
Remark: variables of structure type can not be compared.
Do not do:
person fred, jane;
…
if(fred == jane)
{
printf(“the outcome is undefined”);
} 3
, Pointers
• A variable can be viewed as a specific block of memory in
the computer memory which can be accessed by the
identifier (the name of the variable).
– int k; /* the compiler sets aside 4 bytes of memory (on a PC) to hold the value
of the integer. It also sets up a symbol table. In that table it adds the symbol k
and the relative address in memory where those 4 bytes were set aside. */
– k = 8; /*at run time when this statement is executed, the value 8 will be
placed in that memory location reserved for the storage of the value of k. */
• With k, there are two associated values. One is the value of the
integer, 8, stored. The other is the “value” or address of the memory
location.
• The variable for holding an address is a pointer variable.
int *ptr; /*we also give pointer a type which refers to the type of data stored at
the address that we will store in the pointer. “*” means pointer to */
4