Learn to add print statements and run the code.
Code:
#include <stdio.h>
void func(float *px, float *py)
{
*px = 3 + 2 * *px;
printf("New *px = %f\n", *px );
*py = *py - 21;
printf("New *py = %f\n", *py );
}
int main()
{
float x = 0, y = 4, z = 1;
int i;
printf("Old x=%f, y=%f\n", x, y );
func(&x, &y);
printf("New x=%f, y=%f\n", x, y );
func(&y, &z);
printf("%f\n", y);
return 0;
}
Or learn to use a debugger and step the code.
Code:
$ gcc -g foo.c
$ gdb ./a.out
(gdb) break main
Breakpoint 1 at 0x400546: file foo.c, line 10.
(gdb) run
Starting program: /home/sc/Documents/a.out
Breakpoint 1, main () at foo.c:10
10 float x = 0, y = 4, z = 1;
(gdb) s
12 func(&x, &y);
(gdb)
func (px=0x7fffffffe184, py=0x7fffffffe188) at foo.c:4
4 *px = 3 + 2 * *px;
(gdb)
5 *py = *py - 21;
(gdb)
6 }
(gdb) print *px
$1 = 3
(gdb) print *py
$2 = -17
(gdb) s
main () at foo.c:13
13 func(&y, &z);
(gdb) print y
$3 = -17
(gdb) print z
$4 = 1