#include #define HEJ "Hello" #define NL "\n" #define MAX_ARRAY 10 struct mycomplex { int re; int im; }; /* union u{ int i; double r; char* s; }; */ struct mys { int select; // union u; }; int changeComplex(struct mycomplex *p) { p->im = 100; } int changeInteger(int *p) { *p = 200; } int dontChange(int i) { i = 4000; printf("%d\n", i); } int main() { printf("Hello C World!\n"); printf(HEJ); printf(NL); int i1 = 1; int i2 = 10; double d = 1.55; printf("%d\n", i1); i1 = 2; printf("%d\n", i1); printf("%g\n", d); struct mycomplex c, c2; c.re = 1; c.im = 2; printf(" imaginary part of complex is %d \n", c.im); c2 = c; c2.re = 5; printf(" %s real part of complex d is %d and img is: %d\n", "here", c2.re, c2.im); int myarray[] = {1, 2, 3, 4, 5, 6}; for (int i=0; i<6; i++) { printf("%d ", myarray[i]); } printf("\n"); myarray[3] = 10; for (int i=0; i<6; i++) { printf("%d ", myarray[i]); } printf("\n"); int *p = &i1; printf("%p\n", p); printf("%p\n", myarray); int **pp = &p; printf("%d %d %d\n", i1, *p, **pp); i1 = 5; printf("%d %d\n", *p, **pp); i2 = i1; *p = 10; printf("%d %d %d\n", i1, *p, **pp); printf("%d\n", i2); i2 = *(myarray + 3); printf("%d = %d\n", i2, myarray[3]); myarray[3] = *(myarray + 5); printf("%d\n", myarray[3]); struct mycomplex c3 = c2; int i5 = c3.im; printf("%d\n", i5); changeComplex(&c3); printf("%d\n", c3.im); changeInteger(&i5); printf("%d\n", i5); dontChange(i5); printf("%d\n", i5); void *vp = (void*)(&i5); printf("%p\n", vp); printf("%g\n", ((struct mycomplex*)vp)->im); struct mycomplex *c4 = NULL; if (c4 != NULL) printf("%d\n", c4->im); int *arr = (int*)malloc(sizeof(int) * MAX_ARRAY); for (int i = 0; i < MAX_ARRAY; i++) { arr[i] = i; printf("%d ", arr[i]); } printf(NL); return 0; }