/* * pointers2.c * * Created on: Mar 14, 2014 * Author: carola */ #include void swap_attempt(int a, int b){ /* Does change values outside of function, because variables are passed by value */ int tmp=a; a=b; b=tmp; printf("a=%d at address %d\n",a, &a); printf("b=%d at address %d\n",b, &b); printf("tmp=%d at address %d\n",tmp, &tmp); } void swap(int* a, int* b){ int tmp = *a; // content of pointer-variable printf("\n\na=%d, *a=%d, &a=%d\n\n\n", a, *a, &a); *a=*b; *b=tmp; } int main(){ int i=5; int j=7; int k=8; printf("i=%d at address %d\n",i, &i); printf("j=%d at address %d\n",j, &j); printf("k=%d at address %d\n",k, &k); swap_attempt(i,j); swap(&i,&j); printf("i=%d at address %d\n",i, &i); printf("j=%d at address %d\n",j, &j); printf("k=%d at address %d\n\n\n",k, &k); //int f = 2665484; //printf("*f=%d\n",(int)*f); int A[4]={0,1,2,3}; int l; for(l=0; l<4; l++) printf("A[%d]=%d; address=%d\n", l, A[l], &A[l]); printf("\n\n\n"); int* jp=&j; jp[1]=57; *(jp+2)=-32; printf("i=%d at address %d\n",i, &i); printf("j=%d at address %d\n",j, &j); printf("k=%d at address %d\n\n\n",k, &k); //*(jp-1)=42; return 0; }