diff --git a/semester3/spca/code-examples/00_c/03_arrays.c b/semester3/spca/code-examples/00_c/03_arrays.c index 347a043..65d27fb 100644 --- a/semester3/spca/code-examples/00_c/03_arrays.c +++ b/semester3/spca/code-examples/00_c/03_arrays.c @@ -1,3 +1,15 @@ +#include +#include + int main( int argc, char *argv[] ) { + int data[ 10 ]; // Initialize array of 10 integers + data[ 5 ] = 5; // element 5 is now 5 + *data = 10; // element 0 is now 5 + printf( "%d\n", data[ 0 ] ); // print element 0 (prints 10) + printf( "%d\n", *data ); // equivalent as above + printf( "%d\n", data[ 5 ] ); // print element 5 (prints 5) + printf( "%d\n", *( data + 5 ) ); // equivalent as above + int multidim[ 5 ][ 5 ]; // 2-dimensional array + // We can iterate over it using two for-loops return 0; } diff --git a/semester3/spca/code-examples/00_c/arrays b/semester3/spca/code-examples/00_c/arrays new file mode 100755 index 0000000..664894b Binary files /dev/null and b/semester3/spca/code-examples/00_c/arrays differ diff --git a/semester3/spca/parts/00_c/01_basics/04_arrays.tex b/semester3/spca/parts/00_c/01_basics/04_arrays.tex index e69de29..d5e4ada 100644 --- a/semester3/spca/parts/00_c/01_basics/04_arrays.tex +++ b/semester3/spca/parts/00_c/01_basics/04_arrays.tex @@ -0,0 +1,7 @@ +\newpage +\subsubsection{Arrays} +\lC\ compiler does not do any array bound checks! Thus, always check array bounds. +Unlike some other programming languages, arrays are \bi{not} dynamic length. + +The below snippet includes already some pointer arithmetic tricks. The variable \texttt{data} is a pointer to the first element of the array. +\inputcodewithfilename{c}{code-examples/00_c/}{03_arrays.c} diff --git a/semester3/spca/spca-summary.pdf b/semester3/spca/spca-summary.pdf index 6834cc2..48e0fda 100644 Binary files a/semester3/spca/spca-summary.pdf and b/semester3/spca/spca-summary.pdf differ