+ All Categories
Home > Documents > Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the...

Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the...

Date post: 01-Sep-2021
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
13
lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include <stdio.h> int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1); } int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr; arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0; }
Transcript
Page 1: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

Exercise 1Use a box-and-arrow diagram for the following program to explain what it prints out:

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

Page 2: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] ???

ptr ???

main

arr[1] ???

arr[2] ???

arr[3] ???

Page 3: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 1

ptr ???

main

arr[1] 2

arr[2] 3

arr[3] 4

Page 4: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 1

ptr ???

main

arr[1] 2

arr[2] 3

arr[3] 4

Page 5: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 1

ptr ???

main

arr[1] 2

arr[2] 3

arr[3] 4

foo bar baz

Page 6: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 5

ptr ???

main

arr[1] 2

arr[2] 3

arr[3] 4

foo bar baz

Page 7: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 5

ptr ???

main

arr[1] 6

arr[2] 3

arr[3] 4

foo bar baz

Page 8: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 5

ptr

main

arr[1] 6

arr[2] 3

arr[3] 4

foo bar baz

Page 9: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 5

ptr

main

arr[1] 6

arr[2] 3

arr[3] 4

foo bar baz

*baz = pointer to arr[2]

Page 10: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 5

ptr

main

arr[1] 6

arr[2] 3

arr[3] 4

foo bar baz

(*baz)+1 = pointer to arr[3]

Page 11: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 5

ptr

main

arr[1] 6

arr[2] 3

arr[3] 4

foo bar baz

*((*baz)+1) = 4

Page 12: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 4

ptr

main

arr[1] 6

arr[2] 3

arr[3] 4

foo bar baz

Page 13: Exercise 1lec4 exercise 1 // 04-04-11 // gribble Exercise 1 Use a box-and-arrow diagram for the following program to explain what it prints out: #include  int foo( int

lec4 exercise 1 // 04-04-11 // gribble

#include <stdio.h>

int foo(int *bar, int **baz) { *bar = 5; *(bar+1) = 6; *baz = bar+2; return *((*baz)+1);}

int main(int argc, char **argv) { int arr[4] = {1, 2, 3, 4}; int *ptr;

arr[0] = foo(&(arr[0]), &ptr); printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], *ptr); return 0;}

arr[0] 4

ptr

main

arr[1] 6

arr[2] 3

arr[3] 4

foo bar baz

prints: 4 6 3 4 3


Recommended